(function e$$0(h, p, e) {
	function c(a, d) {
		if (!p[a]) {
			if (!h[a]) {
				var n = "function" == typeof require && require;
				if (!d && n)
					return n(a, !0);
				if (b)
					return b(a, !0);
				throw Error("Cannot find module '" + a + "'");
			}
			n = p[a] = {
				exports: {}
			};
			h[a][0].call(n.exports, function(d) {
				var b = h[a][1][d];
				return c(b ? b : d)
			}, n, n.exports, e$$0, h, p, e)
		}
		return p[a].exports
	}
	for (var b = "function" == typeof require && require, a = 0; a < e.length; a++)
		c(e[a]);
	return c
})({
	1: [function(g, h, p) {
		h.exports = {
			data: {
				areaLevel: 1,
				varKey: "cartGlobalArea",
				isNotDArea: 0
			},
			getArea: function(e) {
				var c = "",
					b = "",
					a = $.Cookie.get("vip_address") && $.parseJSON(decodeURIComponent(escape($
						.Cookie.get("vip_address")))),
					f = a.sid,
					d = a.sname,
					n = a.did,
					l = a.dname,
					k = a.cid,
					t = a.cname,
					m = a.pid,
					q = a.pname,
					c = $.Cookie.get("vip_province"),
					a = $.Cookie.get("vip_province_name"),
					f = 4 == this.data.areaLevel && this.checkAddress(f, d),
					n = 3 <= this.data.areaLevel && this.checkAddress(n, l),
					k = 2 <= this.data.areaLevel && this.checkAddress(k, t),
					m = 1 <= this.data.areaLevel && this.checkAddress(m, q);
				e = e || this.data.isNotDArea;
				f ? (c = f.id,
					e && (b = "\u6211\u4e0d\u6e05\u695a" == f.name ? n.name : f.name),
					e || (n && (b = n.name),
						"\u6211\u4e0d\u6e05\u695a" != f.name && (b = b + " " + f.name))) : n ? (
					c = n.id,
					b = n.name) : k ? (c = k.id,
					b = k.name) : m ? (c = m.id,
					b = m.name) : (c = c || "",
					b = a || "");
				return {
					areaId: c,
					areaName: b
				}
			},
			checkAddress: function(e, c) {
				return e && c ? {
					id: e,
					name: c
				} : !1
			},
			checkArea: function(e, c) {
				function b(d, b, f) {
					var c = 0,
						e;
					for (e in d)
						a.data.areaLevel == d[e] && (c = 1);
					return c ? b == f ? 1 : 0 : 1
				}
				if (-1 == e)
					return !0;
				var a = this,
					f = $.Cookie.get("vip_address") && $.parseJSON(decodeURIComponent(escape($
						.Cookie.get("vip_address"))));
				switch (c) {
					case "province":
						return b([1, 2, 3, 4], f.pid, e);
					case "city":
						return b([2, 3, 4], f.cid, e);
					case "district":
						return b([3, 4], f.did, e);
					case "street":
						return b([4], f.sid, e)
				}
			},
			setArea: function(e) {
				this.data.areaLevel = e && e.areaLevel || this.data.areaLevel;
				this.data.varKey = e && e.varKey || this.data.varKey;
				this.data.isNotDArea = e && e.isNotDArea || this.data.isNotDArea;
				e = this.getArea();
				$.Var.set(this.data.varKey, e)
			}
		}
	}, {}],
	2: [function(g, h, p) {
		var e = g("../../plugins/modules/http/httpV2.js"),
			c = g("../../plugins/urlParam.js"),
			b = g("../../plugins/moSwitch.js");
		h.exports = {
			url: {
				getAdsApi: "//mapi.vip.com/vips-mobile/rest/activity/pc/adver/list/get"
			},
			adsConfig: {},
			zoneIdsArr: [],
			init: function() {
				this.bindEventListeners();
				b.getSwitch("1230").then(function(a) {
					var b = !0;
					a = a || [];
					for (var d = 0, c = a.length; d < c; d++)
						"1230" == a[d].switchId.toString() && 0 == a[d].status && (b = !1);
					$.Listeners.pub("get.lcp.switchStatus").success({
						switchStatus: b
					})
				})
			},
			bindEventListeners: function() {
				var a = this;
				$.Listeners.sub("config.pcapiToLcp").onsuccess(function(b) {
					for (var d in b.adsConfig)
						a.adsConfig[d] = b.adsConfig[d],
						a.zoneIdsArr.push(d)
				});
				$.Listeners.sub("get.lcp.switchStatus").onsuccess(function(b) {
					b.switchStatus ? a.getAdsAjax() : $.Listeners.pub("get.pcapiAds.list")
						.success()
				})
			},
			getAdsAjax: function(a) {
				var b = [];
				a = a || this.adsConfig;
				for (var d in a)
					this.adsConfig[d] = a[d],
					b.push(d);
				var n = this,
					l = $.Deferred();
				a = c.get({
					standby_id: "nature",
					area_id: $.Cookie.get("vip_province") || "104104",
					zone_ids: b.join(",")
				});
				window.VIPTE && VIPTE.INDEX && 1 == VIPTE.INDEX.preview && "" != VIPTE.INDEX
					.preview_date_from && "" != VIPTE.INDEX.preview_time_from && (b = VIPTE.INDEX
						.preview_date_from + " " + VIPTE.INDEX.preview_time_from,
						b = b.replace(/-/g, "/"),
						b = (new Date(b)).getTime(),
						a.previewMode = 1,
						a.previewTime = parseInt(b / 1E3));
				e({
					url: this.url.getAdsApi,
					data: a,
					jsonp: "callback",
					jsonpCallback: "lcpAdsCb" + (new Date).getTime() + "_" + Math.floor(
						1E6 * Math.random()),
					dataType: "jsonp",
					cache: !0,
					timeout: 8E3,
					ajaxTryTimes: 1,
					code: "lcpAds_ajax_err",
					successCallback: function(a) {
						1 == a.code && a.data && a.data.map ? (a = n.dataProcess(a.data
								.map),
							$.Listeners.pub("get.lcpAds.success").success(a),
							l.resolve(a)) : l.reject()
					},
					errorCallback: function() {
						l.reject()
					}
				});
				return l.promise()
			},
			dataProcess: function(a) {
				var b = {},
					d;
				for (d in a) {
					b[this.adsConfig[d]] = {
						items: []
					};
					for (var c = 0, l = a[d].length; c < l; c++)
						b[this.adsConfig[d]].items.push({
							aid: a[d][c].bannerid,
							blank: a[d][c].blank,
							exptype: a[d][c].exptype,
							height: a[d][c].height,
							id: a[d][c].zone_id,
							img: a[d][c].imgFullPath.replace(/^http:|https:/i, ""),
							link: a[d][c].url.replace(/^http:|https:/i, ""),
							name: a[d][c].name,
							width: a[d][c].width
						})
				}
				return b
			}
		}
	}, {
		"../../plugins/moSwitch.js": 86,
		"../../plugins/modules/http/httpV2.js": 96,
		"../../plugins/urlParam.js": 110
	}],
	3: [function(g, h, p) {
		var e = g("../../plugins/modules/http/marsReport/reportMod.js");
		h.exports = {
			init: function(c) {
				this.options = c || {};
				this.bindEvent()
			},
			bindEvent: function() {
				window.onerror = function(c, b, a, f, d) {
					(-1 < b.indexOf("vipstatic.com") || -1 < b.indexOf("vip.com")) && e.send({
						param: {
							monitor_name: "m_js_error",
							monitor_data: {
								type: c,
								url: window.location.href,
								scene: "-99",
								message: d && d.stack ? d.stack : "",
								sdk_version: "-99"
							}
						}
					})
				}
			}
		}
	}, {
		"../../plugins/modules/http/marsReport/reportMod.js": 97
	}],
	4: [function(g, h, p) {
		h.exports = {
			data: {
				defaultCode: 0,
				code: {
					www: 1,
					list: 2,
					detail: 3,
					pcapi: 4,
					cart: 5,
					checkout: 6
				},
				statusCode: {
					emptyCode: "0100",
					otherCode: "0199",
					error: "0101",
					timeout: "0102",
					parsererror: "0103",
					abort: "0104",
					notRequest: "0105"
				}
			},
			init: function(e) {
				var c = this.takeTraceId(e.traceId),
					b = this.takeTime(e.time),
					a = this.takeCurrentDomain(),
					f = this.takeServerDomain(e.serverDomain);
				code = this.takeCode(e.codeInfo);
				return "\u9519\u8bef\u4ee3\u7801\uff1a\uff08" + c + "|" + b + "|" + a + f + code +
					"\uff09"
			},
			takeTraceId: function(e) {
				e || (e = $.Cookie.get("mars_cid") ? $.Cookie.get("mars_cid") : "000000",
					e = "-" + e.substring(e.length - 6));
				return e
			},
			takeTime: function(e) {
				e || (e = (new Date).getTime() + "",
					e = e.substring(e.length - 5));
				return e
			},
			takeCurrentDomain: function() {
				var e = this.data.code[location.host.split(".")[0]];
				return e ? e : this.defaultCode
			},
			takeServerDomain: function(e) {
				return (e = this.data.code[e]) ? e : this.defaultCode
			},
			takeCode: function(e) {
				var c = e.code || "";
				e.scene ? c = this.data.statusCode[e.scene] ? this.data.statusCode[e.scene] : this
					.data.statusCode.otherCode : c || (c = this.data.statusCode.emptyCode);
				return c
			}
		}
	}, {}],
	5: [function(g, h, p) {
		var e = g("@vmr/mars_sdk_web"),
			c = g("urlParam");
		$(function() {
			var b = null,
				a = c.query("refer_url"); -
			1 < location.pathname.indexOf("suggest.php") && (b = {
				refer_url: a ? a : "https://search.vip.com/"
			});
			!b && a && (b = {
				refer_url: a
			});
			e.initPage(b)
		})
	}, {
		"@vmr/mars_sdk_web": 122,
		urlParam: 110
	}],
	6: [function(g, h, p) {
		var e = g("../../plugins/modules/http/httpV2.js"),
			c = g("../../plugins/urlParam.js");
		h.exports = {
			getSwitchUrl: "//mapi.vip.com/vips-mobile/rest/ugc/reputation/switch/get_for_pc",
			get: function(b) {
				b = c.get({
					switchNames: b
				});
				e({
					url: this.getSwitchUrl,
					data: b,
					jsonp: "callback",
					jsonpCallback: "getSwitchCB",
					dataType: "jsonp",
					cache: !0,
					timeout: 8E3,
					ajaxTryTimes: 1,
					successCallback: function(a) {
						1 == a.code && a.data ? $.Listeners.pub("getSwitch.success")
							.success(a.data) : $.Listeners.pub("getSwitch.fail")
							.success()
					},
					errorCallback: function() {
						$.Listeners.pub("getSwitch.fail").success()
					}
				})
			}
		}
	}, {
		"../../plugins/modules/http/httpV2.js": 96,
		"../../plugins/urlParam.js": 110
	}],
	7: [function(g, h, p) {
		h.exports = {
			uuid: 0,
			getImgUrl: function(e) {
				var c;
				if (1 == e.yao)
					c = "//cart.vipshopyao.com/gw/captcha?";
				else {
					c = 1 == $.Var.get("isNewDomainCaptcha") ? "//pcapi.vip.com/captcha/get.php?" :
						"//pc-captcha.vip.com/captcha/get.php?";
					var b = $.Var.get("fds_info");
					void 0 != b && "" != b && (c = c + "fds_info=" + b + "&");
					e && e.type && (c = c + "type=" + e.type + "&")
				}
				return c = c + "uuid=" + this.getUuid() + "&_=" + Math.random()
			},
			getUuid: function() {
				var e = this.uuid || $.Cookie.get("mars_sid") || function() {
					function c() {
						return b.random().toString(36).substr(2, 4)
					}
					var b = Math;
					return [c(), c(), c(), c(), c(), c(), c(), c()].join("")
				}();
				return this.uuid = e
			}
		}
	}, {}],
	8: [function(g, h, p) {
		g("./../../../../plugins/modules/http/httpV2.js");
		var e = g("./../../../../plugins/moSwitch.js"),
			c = g("./newAddCart.js"),
			b = g("./addCart.js");
		h.exports = {
			events: {
				addSuccess: "cart.add.success",
				addFail: "cart.add.fail",
				overHaitaoPolicy: "cart.add.overHaitaoPolicy",
				sellout: "cart.add.sellout",
				cartIsFull: "cart.add.cartIsFull",
				needCaptcha: "cart.add.needCaptcha",
				captchaErr: "cart.add.captchaErr",
				captchaEmpty: "cart.add.captchaEmpty",
				editSuccess: "cart.edit.success",
				editFail: "cart.edit.fail",
				removeSuccess: "cart.remove.success",
				removeFail: "cart.remove.fail",
				checkSuccess: "cart.check.success",
				checkFail: "cart.check.fail",
				askSuccess: "cart.askInfo.success",
				askFail: "cart.askInfo.fail",
				askLogin: "cart.ask.login",
				addMars: "cart.add.mars",
				needCaptchaV2: "cart.add.needCaptchaV2",
				captchaErrV2: "cart.add.captchaErrV2"
			},
			add: function(a, f, d, n) {
				$.when(e.getSwitch("1184")).then(function(l) {
					l && !$.isEmptyObject(l) && l[0] && 1 != l[0].status ? b.add(a, f, d,
						n) : c.add(a, f, d, n)
				}, "")
			},
			checkCart: function(a) {
				b.checkCart(a)
			}
		}
	}, {
		"./../../../../plugins/moSwitch.js": 86,
		"./../../../../plugins/modules/http/httpV2.js": 96,
		"./addCart.js": 9,
		"./newAddCart.js": 10
	}],
	9: [function(g, h, p) {
		var e = g("./../../../../plugins/mars_cids/index"),
			c = g("./../../../../plugins/modules/http/httpV2.js");
		g = VIPSHOP.cartHost;
		var b = g + "/add.php",
			a = g + "/check_cart.php",
			f = {
				code: 500,
				msg: "\u64cd\u4f5c\u5931\u8d25",
				result: 0
			},
			d = {
				events: {
					addSuccess: "cart.add.success",
					addFail: "cart.add.fail",
					overHaitaoPolicy: "cart.add.overHaitaoPolicy",
					sellout: "cart.add.sellout",
					cartIsFull: "cart.add.cartIsFull",
					needCaptcha: "cart.add.needCaptcha",
					captchaErr: "cart.add.captchaErr",
					captchaEmpty: "cart.add.captchaEmpty",
					editSuccess: "cart.edit.success",
					editFail: "cart.edit.fail",
					removeSuccess: "cart.remove.success",
					removeFail: "cart.remove.fail",
					checkSuccess: "cart.check.success",
					checkFail: "cart.check.fail",
					askSuccess: "cart.askInfo.success",
					askFail: "cart.askInfo.fail",
					askLogin: "cart.ask.login",
					addMars: "cart.add.mars",
					needCaptchaV2: "cart.add.needCaptchaV2",
					captchaErrV2: "cart.add.captchaErrV2"
				},
				getList: function(a, b) {
					var f = {};
					b = 0;
					for (var e in a)
						f[e] = a[e];
					switch (b) {
						case 1:
							this.url = VIPSHOP.cartHost + "/getCartList.php";
							break;
						default:
							this.url = VIPSHOP.cartHost + "/cart.php"
					}
					c({
						url: this.url,
						data: f,
						dataType: "jsonp",
						timeout: 6E3,
						successCallback: function(a) {
							var f = d.events.askSuccess;
							if (b)
								switch (a.code) {
									case 200:
										f = d.events.askSuccess;
										break;
									case 2001:
										f = d.events.askLogin;
										break;
									default:
										f = d.events.askFail
								}
							$.Listeners.pub(f).success(a)
						},
						errorCallback: function() {
							$.Listeners.pub(d.events.askFail).success()
						}
					})
				},
				add: function(a, l, k, t) {
					var m = {};
					if ($.isArray(a)) {
						for (var q = 0, r = a.length; q < r; q++) {
							var g = a[q],
								s;
							for (s in g) {
								var u = g[s];
								m[s] ? m[s].push(u) : m[s] = [u]
							}
						}
						a = "mul"
					} else {
						for (s in a)
							m[s] = a[s];
						a = ""
					}
					k && k.act && (a = k.act);
					m.act = a;
					m.client_time = Math.round((new Date).getTime() / 1E3);
					k = $.Cookie.get("mars_cid");
					!k && e && (k = e.creat(),
						$.Cookie.set("mars_cid", k, ".vip.com", "/", 17520));
					m.mars_cid = k;
					c({
						url: b,
						data: m,
						timeout: 8E3,
						dataType: "jsonp",
						jsonpCallback: "addCart",
						successCallback: function(a) {
							var b = 200 == a.code,
								f = d.events.addFail;
							switch (a.code) {
								case 200:
									f = d.events.addSuccess;
									break;
								case 6005:
									f = d.events.overHaitaoPolicy;
									break;
								case 7002:
									f = d.events.sellout;
									break;
								case 4E3:
									f = d.events.cartIsFull;
									break;
								case 2006:
									f = d.events.needCaptcha;
									$.Var.set("fds_info", a.fds_info);
									break;
								case 5003:
									f = d.events.captchaErr;
									break;
								case 5E4:
									f = d.events.captchaEmpty;
									break;
								case 3003:
									f = d.events.needCaptchaV2;
									break;
								case 3004:
									f = d.events.captchaErrV2;
									break;
								default:
									f = d.events.addFail
							}
							setTimeout(function() {
								$.Listeners.pub(f).success({
									isSuccess: b,
									code: a.code,
									result: a.result,
									msg: a.msg,
									rs: a,
									param: m
								})
							}, 200);
							l && l(a, b, m)
						},
						errorCallback: function(a, b) {
							$.Listeners.pub(d.events.addFail).success({
								isSuccess: !1,
								code: f.code,
								result: f.result,
								msg: f.msg,
								param: m
							});
							l && l(f, !1, m, b)
						}
					});
					t && t.scene_id && t.brand_id && t.goods_id && $.Listeners.pub(d.events.addMars)
						.success({
							scene_id: t.scene_id,
							brand_id: t.brand_id,
							goods_id: t.goods_id
						})
				},
				checkCart: function(b) {
					$.ajax({
						url: a,
						jsonpCallback: "check_cart",
						dataType: "jsonp",
						timeout: 8E3,
						success: function(a) {
							var f = !1;
							0 == a.code || 1 == a.code || 2 == a.code || 5 == a.code ? (
								f = !0,
								$.Listeners.pub(d.events.checkSuccess).success({
									isSuccess: f,
									code: a.code,
									msg: a.msg,
									unGoodsList: a.unGoodsList,
									endTime: a.end_time
								})) : $.Listeners.pub(d.events.checkFail).success({
								isSuccess: !1,
								code: a.code,
								msg: a.msg
							});
							b && b(f, a.code, a.msg, a.end_time)
						},
						error: function() {
							b && b(!1, f.code, f.msg, null);
							$.Listeners.pub(d.events.checkFail).success({
								isSuccess: !1,
								data: null,
								code: f.code,
								msg: f.msg
							})
						}
					})
				}
			};
		h.exports = d
	}, {
		"./../../../../plugins/mars_cids/index": 84,
		"./../../../../plugins/modules/http/httpV2.js": 96
	}],
	10: [function(g, h, p) {
		g("./../../../../plugins/mars_cids/index");
		var e = g("./../../../../plugins/modules/http/httpV2.js"),
			c = g("./../../../../plugins/modules/checkLogin/globalLogin.js"),
			b = g("./../../../../plugins/urlParam.js"),
			a = g("./../../../../plugins/captcha.js"),
			f = g("./../../../../plugins/error.js"),
			d = {
				code: 500,
				msg: "\u52a0\u5165\u8d2d\u7269\u8f66\u5931\u8d25\uff0c\u8bf7\u7a0d\u540e\u518d\u8bd5",
				result: 0
			},
			n = {
				events: {
					addSuccess: "cart.add.success",
					addFail: "cart.add.fail",
					overHaitaoPolicy: "cart.add.overHaitaoPolicy",
					sellout: "cart.add.sellout",
					cartIsFull: "cart.add.cartIsFull",
					needCaptcha: "cart.add.needCaptcha",
					captchaErr: "cart.add.captchaErr",
					captchaEmpty: "cart.add.captchaEmpty",
					editSuccess: "cart.edit.success",
					editFail: "cart.edit.fail",
					removeSuccess: "cart.remove.success",
					removeFail: "cart.remove.fail",
					checkSuccess: "cart.check.success",
					checkFail: "cart.check.fail",
					askSuccess: "cart.askInfo.success",
					askFail: "cart.askInfo.fail",
					askLogin: "cart.ask.login",
					addMars: "cart.add.mars",
					needCaptchaV2: "cart.add.needCaptchaV2",
					captchaErrV2: "cart.add.captchaErrV2"
				},
				data: {
					captchaV2Dialog: null,
					captchaId: null,
					callback: null,
					marsObj: null,
					paramObj: null,
					sid: null,
					scene_data: null
				},
				add: function(d, b, n, e) {
					var q = this;
					if ($.isArray(d))
						this.multCart(d, b, e);
					else {
						var r = '{"size_id":"' + d.size_id + '"}';
						$.when(a.prepare({
							scene_data: r,
							scene: "CART_ADD_PC"
						})).done(function(a) {
							a && 11003 == a.code ? c.forceLogin() : a && 1 == a.code ? (a = a
								.data,
								a.sid && (q.data.sid = a.sid),
								d.sid = a.sid,
								a && 99 == a.captchaType ? f.dialog({
									msg: "\u60a8\u7684\u5e10\u6237\u5b58\u5728\u98ce\u9669\uff0c\u8bf7\u4e0e\u5ba2\u670d\u8054\u7cfb\uff01"
								}) : a && 0 != a.captchaType ? (q.data.scene_data = r,
									q.data.callback = b,
									q.data.marsObj = e,
									q.data.paramObj = d,
									q.createCaptchaV2(a)) : a && 0 == a.captchaType ? q
								.addCart(d, b, e) : f.dialog({
									closeEvent: q.resetAddCart
								})) : f.dialog({
								closeEvent: q.resetAddCart
							})
						}).fail(function() {
							f.dialog({
								closeEvent: q.resetAddCart
							})
						})
					}
				},

				addCart: function(a, f, t) {
					var m = b.get({
							size_id: a.size_id,
							size_num: a.num,
							product_id: a.product_id,
							source_app: "pc",
							captcha_id: a.captchaId ? a.captchaId : "",
							sid: a.sid ? a.sid : "",
							ticket: a.captchaTicket ? a.captchaTicket : "",
							is_reserve: "0",
							cart_ver: "4",
							functions: "canChecked"
						}),
						m = c.replaceApiKey(m);
					a = c.auth("//mapi.vip.com/vips-mobile/rest/cart/pc/add_cart/v3", m, "mapi.vip.com",
						"get", 0);
					e({
						url: a.url,
						data: a.param,
						timeout: 8E3,
						dataType: "jsonp",
						jsonpCallback: "addCart",
						successCallback: function(a) {
							var d = 1 == a.code,
								b = n.events.addFail;
							switch (a.code) {
								case 1:
									b = n.events.addSuccess;
									break;
								default:
									b = n.events.addFail
							}
							setTimeout(function() {
								$.Listeners.pub(b).success({
									isSuccess: d,
									code: a.code,
									data: a.data,
									msg: a.msg,
									rs: a,
									param: m
								})
							}, 200);
							a.newCart = 1;
							f && f(a, d, m)
						},
						errorCallback: function(a, b) {
							$.Listeners.pub(n.events.addFail).success({
								isSuccess: !1,
								code: d.code,
								data: d.data,
								msg: d.msg,
								param: m
							});
							f && f(d, !1, m, b)
						}
					});
					t && t.scene_id && t.brand_id && t.goods_id && $.Listeners.pub(n.events.addMars)
						.success({
							scene_id: t.scene_id,
							brand_id: t.brand_id,
							goods_id: t.goods_id
						})
				},
				captchaPrepay: function() {
					var a = $.Deferred();
					e({
						url: "//order.vip.com/multDetail/relatedOrderSnList",
						data: b.get({
							code: code
						}),
						cache: !1,
						dataType: "jsonp",
						type: "GET",
						jsonpCallback: "getDynamicConfig" + (new Date).getTime() + "_" + Math
							.floor(1E6 * Math.random()),
						timeout: 8E3,
						successCallback: function(d) {
							1 == d.code && d.data ? a.resolve(d.data) : a.reject()
						},
						errorCallback: function() {
							a.reject()
						}
					});
					return a.promise()
				},
				multCart: function(a, f, c) {
					for (var m = [], q = [], r = 0; r < a.length; r++)
						m.push(a[r].size_id),
						q.push(a[r].num);
					var g = b.get({
						size_id: m.join(","),
						size_num: q.join(","),
						is_atomicity: 0,
						source_app: "pc",
						captcha_id: a.captchaId ? a.captchaId : "",
						ticket: a.captchaTicket ? a.captchaTicket : "",
						is_reserve: "0",
						cart_ver: "4",
						functions: "canChecked"
					});
					e({
						url: "//mapi.vip.com/vips-mobile/rest/cart/pc/multi_add/v1",
						data: g,
						timeout: 8E3,
						dataType: "jsonp",
						jsonpCallback: "multCart",
						successCallback: function(a) {
							var d = a.code,
								b = n.events.addFail;
							switch (a.code) {
								case 1:
									b = n.events.addSuccess;
									break;
								default:
									b = n.events.addFail
							}
							setTimeout(function() {
								$.Listeners.pub(b).success({
									isSuccess: d,
									code: a.code,
									data: a.data,
									msg: a.msg,
									rs: a,
									param: g
								})
							}, 200);
							a.newCart = 1;
							f && f(a, d, g)
						},
						errorCallback: function(a, b) {
							$.Listeners.pub(n.events.addFail).success({
								isSuccess: !1,
								code: d.code,
								data: d.data,
								msg: d.msg,
								param: g
							});
							f && f(d, !1, g, b)
						}
					});
					c && c.scene_id && c.brand_id && c.goods_id && $.Listeners.pub(n.events.addMars)
						.success({
							scene_id: c.scene_id,
							brand_id: c.brand_id,
							goods_id: c.goods_id
						})
				},
				createCaptchaV2: function(a) {
					window.VipSecureCode && (this.openCaptchaV2Dialog(a),
						this.initCaptchaV2(a))
				},
				openCaptchaV2Dialog: function(a) {
					var d = this;
					if (0 == $("#J_add_cart_captcha_v2").length) {
						var b = "medium";
						a && a.captchaType && 1 == a.captchaType && (b = [460, 258]);
						d.data.captchaV2Dialog = $.Dialog({
							model: !0,
							effect: {
								effect: "slide",
								duration: 200
							},
							size: b,
							custom: !0,
							opacity: 0.3
						})
					}
					0 == $("#J_captcha_v2").length && $("body").append(
						'<script type="text/html" id="J_captcha_v2">\r\n    <div class="pop-cnt">\r\n        \r\n        <p class="pop-tit antibrush-captcha-title">\u5b89\u5168\u9a8c\u8bc1</p>\r\n        <div class="J_captcha_v2_cancel_btn cart_captcha_close pop-close " title="\u5173\u95ed" role="button" rel="nofollow"></div>\r\n        <div class="antibrush-captcha-text">\u9a8c\u8bc1\u6210\u529f\u540e\uff0c\u5546\u54c1\u5c06\u76f4\u63a5\u52a0\u5165\u8d2d\u7269\u888b\u3002\u5982\u679c\u9a8c\u8bc1\u4e0d\u751f\u6548\uff0c\u8bf7\u7a0d\u540e\u91cd\u8bd5\u3002</div>\r\n        <div class="antibrush-captcha J_captcha_part_captcha">\r\n            <div id ="J_add_cart_captcha_v2"> \r\n            </div>\r\n        </div>\r\n        <div class="J_captcha_confirm btn-captcha-confirm hidden"><a href="javascript:;" role="button" class="ui-btn-medium ui-btn-primary" >\u786e\u8ba4</a></div>     \r\n    </div>\r\n\x3c/script>\r\n<script type="text/html" id="J_captcha_v2_error">\r\n<h3 class="unbrush-error-tips" id="J-cProt-tips">\r\n    <span class="text">\r\n        <i class="vipFont if-sigh">&#xe603;</i>\r\n        <span class="cProt-error-msg" id="J_unbrush_error">{{msg}}</span>\r\n    </span>\r\n    </h3>\r\n\x3c/script>'
						);
					d.data.captchaV2Dialog.open();
					$(document).one("click", ".J_captcha_v2_cancel_btn, .J_couponFailClose",
				function() {
						d.data.captchaV2Dialog && d.data.captchaV2Dialog.close();
						$("#J-cartAdd-submit").removeClass("z-ui-btn-loading")
					});
					d.data.captchaV2Dialog.content($("#J_captcha_v2"));
					a && a.captchaType && 1 == a.captchaType && ($(".J_captcha_part_captcha")
						.removeClass("antibrush-captcha").addClass("antibrush-pic-captcha"),
						$(".J_captcha_confirm").removeClass("hidden"))
				},
				initCaptchaV2: function(a) {
					var d = n;
					window.VipSecureCode.init();
					var b = {},
						f = {
							captchaId: a.captchaId,
							templateId: a.templateId,
							captchaType: a.captchaType,
							extend: a.extend
						};
					d.data.captchaId = a.captchaId;
					b = {
						targetId: "J_add_cart_captcha_v2",
						params: f,
						id: "J_add_cart_captcha_v2_dom",
						exCls: "",
						label: "top",
						labelText: "",
						onPassed: d.captchaV2PassedCB,
						onFailed: d.captchaFailCB
					};
					window.VipSecureCode.load({
						url: a.templateId,
						success: function() {
							d.captchaInstance = window.VipSecureCode.createInstance(b);
							d.captchaInstance.show()
						},
						error: function() {}
					})
				},
				captchaV2PassedCB: function(a) {
					var d = n;
					d.data.paramObj.captchaId = d.data.captchaId;
					d.data.paramObj.captchaTicket = a.data.ticket;
					d.data.paramObj.data = d.data.scene_data;
					d.data.captchaV2Dialog.close();
					d.addCart(d.data.paramObj, d.data.callback, d.data.marsObj)
				},
				captchaFailCB: function() {},
				resetAddCart: function() {
					$("#J-cartAdd-submit").removeClass("z-ui-btn-loading")
				}
			};
		h.exports = n
	}, {
		"./../../../../plugins/captcha.js": 81,
		"./../../../../plugins/error.js": 83,
		"./../../../../plugins/mars_cids/index": 84,
		"./../../../../plugins/modules/checkLogin/globalLogin.js": 94,
		"./../../../../plugins/modules/http/httpV2.js": 96,
		"./../../../../plugins/urlParam.js": 110
	}],
	11: [function(g, h, p) {
		var e = g("./Cart"),
			c = g("../../../../plugins/modules/checkLogin/globalLogin.js");
		h.exports = {
			add: function(b, a, f, d) {
				var c = VIPSHOP.Member.parseCookie(),
					c = "a" === c.luc && 1 == c.p2,
					l = $.Cookie.get("VipLID"),
					k = this.unLoginAddFunc(b, a, f, d);
				a = this.addCartCb(k, a);
				c || l ? e.add(b, a, f, d) : k()
			},
			addCartCb: function(b, a) {
				return function(f, d, c) {
					-1 == f.result ? (b(),
						b = null) : a && a(f, d, c)
				}
			},
			unLoginAddFunc: function(b, a, f, d) {
				return function() {
					c.redirect();
					VIPSHOP.login.init({
						loginEvent: function() {
							VIPSHOP.member.chk();
							f && f.successLoginCb && f.successLoginCb();
							e.add(b, a, f, d)
						},
						closeEvent: function() {
							f && f.closeLoginCb && f.closeLoginCb()
						}
					})
				}
			}
		}
	}, {
		"../../../../plugins/modules/checkLogin/globalLogin.js": 94,
		"./Cart": 8
	}],
	12: [function(g, h, p) {
		h.exports = {
			viewed: function(e, c) {
				for (var b = $.Cookie.get(e), a = "" == b ? [] : b.split(","), b = -1, f = 0; f < a
					.length; f++)
					a[f] == c && (b = f); -
				1 == b && 5 <= a.length ? a.shift() : -1 < b && a.splice(b, 1);
				a.push(c);
				b = document.domain.split(".");
				b.shift();
				b = b.join(".");
				$.Cookie.set(e, a.join(","), b)
			},
			setViewed: function(e, c) {
				var b = $.Storage.get(e),
					b = b ? b : [],
					a = [];
				if (b) {
					var f = 2 < arguments.length ? arguments[2] : 5,
						d = f;
					b.length < f && (d = b.length);
					for (var n = 0; n < d; n++)
						b[n].id != c.id && a.push(b[n]);
					a.length >= f && a.shift()
				}
				a.push(c);
				$.Storage.set(e, a)
			},
			getViewed: function(e) {
				return (e = $.Storage.get(e)) ? e : []
			}
		}
	}, {}],
	13: [function(g, h, p) {
		var e = g("@vmr/mars_sdk_web");
		h.exports = {
			normalProduct: function(c) {
				c = $.extend({}, {
					activityId: "0002"
				}, c);
				this.report(c)
			},
			prepayProduct: function(c) {
				c = $.extend({}, {
					activityId: "0009"
				}, c);
				this.report(c)
			},
			globalProduct: function(c) {
				c = $.extend({}, {
					activityId: "0013"
				}, c);
				this.report(c)
			},
			report: function(c) {
				e.report({
					activity_type: "tap",
					activity_id: c.activityId,
					activity_ext: {},
					activity_data: {
						goods_set: {
							brand_id: c.brandId,
							goods_id: c.goodsId,
							size_id: c.sizeId
						}
					}
				})
			}
		}
	}, {
		"@vmr/mars_sdk_web": 122
	}],
	14: [function(g, h, p) {
		g("../plugins/compact.js").init();
		window.Cart = g("../bo/te/cart/3/regBuy.js");
		window.PMS = g("../shop/pmsMod.js");
		window.nspmsNavShow = g("../shop/pmsNavShowMod.js");
		window.coupons = g("./modules/detail_v3/productInfo/coupon.js");
		window.nsAddress = g("./modules/detail_v3/address/index.js");
		window.abtest = g("../plugins/modules/abtest/index.js");
		window.appShopHasGoodsRemind = window.PG.switchConfig.appShopHasGoodsRemind;
		window.nsMerchandiseMod = g("./modules/detail_v3/nsMerchandiseMod.js");
		var e = g("./modules/detail_v3/productInfo/index.js"),
			c = g("./modules/detail_v3/store/licenseScore");
		window.nsTopbarMod = g("./modules/detail_v3/bar/nsTopbarMod.js");
		window.nsFooterMod = g("./modules/nsFooterMod.js");
		window.nsAddCartAnimateMod = g("./modules/detail_v3/addCart/nsAddCartAnimateMod.js");
		window.nsFormMod = g("./modules/detail_v3/addCart/nsFormMod.js");
		window.nsAdMod = g("./modules/detail_v3/ad/nsAdMod.js");
		var b = g("./modules/detail_v3/recommend/index.js");
		window.nsSizeStockMod = g("./modules/detail_v3/sku/sizeStockMod.js");
		window.nsReco = g("./modules/detail_v3/recommend/nsReco.js");
		window.nsPageMod = g("./modules/detail_v3/page/pageMod.js");
		window.FavoriteGoods = g("../shop/modules/favorite-goods");
		window.nsProNumMod = g("./modules/detail_v3/productInfo/proNumMod.js");
		window.nsReserveMod = g("./modules/detail_v3/sku/reserveMod.js");
		window.nsSizeRecommandMod = g("./modules/detail_v3/sizeRecommend/sizeRecommend.js");
		window.nsFavProMod = g("./modules/detail_v3/productInfo/nsFavProMod.js");
		window.nsRecoMarkMod = g("./modules/detail_v3/recommend/nsRecoMarkMod.js");
		window.VipUI = g("../plugins/modules/ui");
		window.nsRelateGoodsMod = g("./modules/detail_v3/productInfo/nsRelateGoodsMod.js");
		window.nsLoanMod = g("./modules/detail_v3/loanMod/nsLoanMod.js");
		window.nsQrcode = g("./modules/detail_v3/qrcode/nsQrcodeMod.js");
		"www.vipglobal.hk" == window.location.host && (window.cookieSync = g(
				"../plugins/modules/Cookie/sync.js"),
			cookieSync.init());
		var a = g("../bo/error/monitorError.js");
		window.checkLogin = g("../plugins/modules/checkLogin/checkLogin.js");
		g("../bo/mars/tools.js");
		$.Listeners.sub("ready.first").onsuccess(function() {
			a.init({
				action: "pc_detail_report"
			});
			abtest.init(abtest.data.spiderId).then(function(a) {
				checkLogin.init("detail");
				nsMerchandiseMod.init();
				nsTopbarMod.init();
				e.init();
				nsProNumMod.init();
				nsLoanMod.init();
				nspmsNavShow.init();
				b.init();
				nsPageMod.init();
				c.init();
				nsSizeStockMod.init();
				nsSizeRecommandMod.init();
				coupons.init();
				nsFormMod.init();
				nsQrcode.init()
			})
		});
		$.Listeners.sub("ready.second").onsuccess(function() {
			nsAdMod.init()
		});
		$.Listeners.sub("ready.third").onsuccess(function() {
			nsFooterMod.init()
		});
		$.Listeners.sub("ready.four").onsuccess(function() {
			nsRecoMarkMod.init()
		})
	}, {
		"../bo/error/monitorError.js": 3,
		"../bo/mars/tools.js": 5,
		"../bo/te/cart/3/regBuy.js": 11,
		"../plugins/compact.js": 82,
		"../plugins/modules/Cookie/sync.js": 87,
		"../plugins/modules/abtest/index.js": 92,
		"../plugins/modules/checkLogin/checkLogin.js": 93,
		"../plugins/modules/ui": 102,
		"../shop/modules/favorite-goods": 116,
		"../shop/pmsMod.js": 119,
		"../shop/pmsNavShowMod.js": 120,
		"./modules/detail_v3/ad/nsAdMod.js": 15,
		"./modules/detail_v3/addCart/nsAddCartAnimateMod.js": 16,
		"./modules/detail_v3/addCart/nsFormMod.js": 17,
		"./modules/detail_v3/address/index.js": 18,
		"./modules/detail_v3/bar/nsTopbarMod.js": 21,
		"./modules/detail_v3/loanMod/nsLoanMod.js": 24,
		"./modules/detail_v3/nsMerchandiseMod.js": 25,
		"./modules/detail_v3/page/pageMod.js": 26,
		"./modules/detail_v3/productInfo/coupon.js": 27,
		"./modules/detail_v3/productInfo/index.js": 28,
		"./modules/detail_v3/productInfo/nsFavProMod.js": 40,
		"./modules/detail_v3/productInfo/nsRelateGoodsMod.js": 41,
		"./modules/detail_v3/productInfo/proNumMod.js": 42,
		"./modules/detail_v3/qrcode/nsQrcodeMod.js": 63,
		"./modules/detail_v3/recommend/index.js": 64,
		"./modules/detail_v3/recommend/nsReco.js": 66,
		"./modules/detail_v3/recommend/nsRecoMarkMod.js": 67,
		"./modules/detail_v3/sizeRecommend/sizeRecommend.js": 69,
		"./modules/detail_v3/sku/reserveMod.js": 71,
		"./modules/detail_v3/sku/sizeStockMod.js": 72,
		"./modules/detail_v3/store/licenseScore": 74,
		"./modules/nsFooterMod.js": 78
	}],
	15: [function(g, h, p) {
		var e = VIPSHOP.Detect.isIE6,
			c = g("../../../../bo/ads/lcpAd.js"),
			b = {
				adData: null,
				event: {
					sub: {
						getBrandInfoSuccess: "getBrandInfo.detail.success"
					}
				},
				data: {
					config: {
						10008224: "ADADS9LH12",
						10008225: "ADADS82W95",
						10008226: "ADADS3Q233",
						10008223: "ADADSGL759",
						10008233: "ADADSJAKP1",
						10008222: "ADADSH4RVS"
					}
				},
				adApi: "//pcapi.vip.com/cmc/index.php",
				adIds: "ADS82W95,ADS3Q233,ADS9LH12,ADSL24LW,ADSTI3T7,ADSH4RVS,ADSGL759,ADSJAKP1",
				UI: {
					adAtmosphere: ".J-ad-atmosphere"
				},
				status: {
					hidden: "f-hide"
				},
				init: function(a) {
					$.Listeners.pub("config.pcapiToLcp").success({
						adsConfig: this.data.config
					});
					c.init();
					this.bindEventListeners()
				},
				bindEventListeners: function() {
					var a = this;
					$.Listeners.sub("get.pcapiAds.list").onsuccess(function(b) {
						a.getData()
					});
					$.Listeners.sub("get.lcpAds.success").onsuccess(function(b) {
						a.adData = b;
						$.Listeners.sub("ready.four").onsuccess(function() {
							a.getDataCB()
						})
					})
				},
				getData: function() {
					var a = this,
						b = VIPSHOP.queryStringToJSON();
					$.ajax({
						url: a.adApi,
						data: {
							type: a.adIds,
							warehouse: $.Cookie.get("vip_wh"),
							areaid: $.Cookie.get("vip_province"),
							preview: b.preview || "0",
							date_from: b.sell_time_from || "",
							time_from: b.time_from || "",
							user_class: b.page_code || ""
						},
						jsonp: "callback",
						jsonpCallback: "ads_api",
						cache: !0,
						dataType: "jsonp",
						timeout: 6E3,
						success: function(d) {
							a.adData = d;
							$.Listeners.sub("ready.four").onsuccess(function() {
								a.getDataCB()
							})
						}
					})
				},
				getDataCB: function() {
					var a = this;
					$.Listeners.sub("winLoaded").onsuccess(function() {
						var f = b.adData;
						b.adDetailBottom(f.ADADS3Q233).topBg_ads(f.ADADSH4RVS).top_ads(f
							.ADADSGL759);
						$.Listeners.sub(a.event.sub.getBrandInfoSuccess).onsuccess(function(a) {
							a.product && (2 == a.product.detailStatus ? b.adLeftCode(f
								.ADADSL24LW, "bottom").AdAtmosphere(f
								.ADADSTI3T7) : b.adLeftCode(f.ADADS9LH12,
								"bottom").AdAtmosphere(f.ADADS82W95));
							$(window).resize(function() {
								b.bodyWidth = $("body").width();
								b.winHeight = $(window).height();
								var a = $(window).scrollTop();
								!e && 1250 <= b.bodyWidth && a > b.winHeight &&
									$("#J_top_adCode, #J-bottom-adCode").show()
							}).trigger("resize");
							$(window).on("scroll.adCode", function() {
								var a = b.bodyWidth,
									d = b.winHeight;
								$(window).scrollTop() > d ? 1250 <= a && !e &&
									$("#J_top_adCode, #J-bottom-adCode")
								.show() : $("#J_top_adCode, #J-bottom-adCode")
									.hide()
							})
						})
					})
				},
				top_ads: function(a) {
					if (a && 0 < a.items.length) {
						var b = "",
							d;
						a.items[0].blank && (d = 'target="_blank"');
						"" != a.items[0].link && (b += '<a class="ad419_cover" href="' + a.items[0]
							.link + '"' + d + ' style="background:none"></a>');
						b += '<object id="FlashID" classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="//download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=8.0.35.0" width="1000" height="80"><param name="movie" value="' +
							a.items[0].img +
							'"><param name="quality" value="high" /><param name="wmode" value="transparent"><embed src="' +
							a.items[0].img +
							'" type="application/x-shockwave-flash" width="1000" height="80" wmode="transparent" quality="high" /></object>';
						$("#J_top_ads").html(b).css({
							height: 80
						});
						$("#J_top_close").on("click", function() {
							$("#J_top_ads").css({
								height: 0
							})
						})
					}
					return this
				},
				topBg_ads: function(a) {
					a && 0 < a.items.length && ($("#J_top_ads").css({
							backgroundImage: "url(" + a.items[0].img + ")"
						}).height(80),
						$("#J_topAds_link").attr({
							href: a.items[0].link,
							title: a.items[0].title
						}).height(80),
						$("#J_topAds_img").remove());
					return this
				},
				AdAtmosphere: function(a) {
					var b = this;
					if (a && 0 < a.items.length) {
						var d = new Image,
							c, l = "",
							k = "",
							e = "",
							m;
						d.onload = function() {
							a.items[0].blank && (c = ' target="_blank" rel="noopener" ');
							a.items[0].link && (l = ' href="' + a.items[0].link + '" ');
							a.items[0].name && (k = ' title="' + a.items[0].name + '" ',
								e = ' alt="' + a.items[0].name + '" ');
							m = l ? "<a" + l + c + k + '><img src="' + a.items[0].img + '"' + e +
								'width="550" height="40"></a>' : '<img src="' + a.items[0].img +
								'"' + e + 'width="550" height="40">';
							$(b.UI.adAtmosphere).html(m).removeClass(b.status.hidden)
						};
						d.src = a.items[0].img
					}
					return this
				},
				adDetailBottom: function(a) {
					if (a && 0 < a.items.length) {
						var b = new Image,
							d, c;
						b.onload = function() {
							a.items[0].blank && (d = 'target="_blank"');
							c = '<a href="' + a.items[0].link + '" ' + d + ' title="' + a.items[0]
								.name + '"><img src="' + a.items[0].img + '" alt="' + a.items[0]
								.name + '" width="' + b.width + '" height="' + b.height +
								'" /></a>';
							$("#J-ad-detail-bottom").html(c).show()
						};
						b.src = a.items[0].img
					}
					return this
				},
				adLeftCode: function(a, b) {
					if (a && 0 < a.items.length) {
						var d = new Image,
							c, l;
						d.onload = function() {
							a.items[0].blank && (c = 'target="_blank"');
							l = '<a href="' + a.items[0].link + '" ' + c + ' title="' + a.items[0]
								.name + '"><img src="' + a.items[0].img + '" alt="' + a.items[0]
								.name + '" width="' + d.width + '" height="' + d.height +
								'" /></a>';
							switch (b) {
								case "top":
									$("#J_top_adCode").html(l);
									break;
								case "bottom":
									$("#J-bottom-adCode").html(l)
							}
						};
						d.src = a.items[0].img
					}
					return this
				},
				integrateClose: function(a) {
					$("#J-integrate-close").on("click", function() {
						$("#J-integrate-ads").hide();
						$.Storage.set("inteAdsStrg", a)
					})
				}
			};
		h.exports = b
	}, {
		"../../../../bo/ads/lcpAd.js": 2
	}],
	16: [function(g, h, p) {
		h.exports = {
			flyInto: function() {
				var e = $("#J-button-box").offset(),
					c = $("#J_cart").offset();
				$("#J-min-addCart").css({
					top: e.top,
					left: e.left
				}).show().animate({
					top: e.top + -50
				}, 300).animate({
					top: c.top,
					left: c.left
				}, 700, function() {
					$("#J-min-addCart").hide().offset({
						top: 0,
						left: 0
					})
				})
			}
		}
	}, {}],
	17: [function(g, h, p) {
		var e = g("CaptchaAPI"),
			c = g("../../../../bo/error/takeErrorCode.js"),
			b = g("../../../../common/modules/mars/addCartMars"),
			a = g("../../../../plugins/modules/template"),
			f = g("../../../../plugins/modules/checkLogin/globalLogin.js"),
			d = {
				timeoutPop: null,
				cartMsgPop: null,
				secKillDialog: null,
				goToCartFlag: !1,
				verify: "",
				checkFromCal: null,
				submitSucessCal: null,
				globalTpisPop: null,
				installmentLoanErrorPop: null,
				globalTpisTxt: "",
				specialCheckApi: "//checkout.vip.com/te2/buyCheck.php",
				ie6CartCd: null,
				cartShowFlag: 0,
				captchaV2Dialog: null,
				captchaId: null,
				event: {
					sub: {
						addFail: "cart.add.fail"
					}
				},
				init: function() {
					var a = this,
						b = $(document);
					this.checkSidebarCartShow();
					$("#J-cartAdd-frm").find(".J-radio").remove();
					VIPSHOP.Member.rule._aUser = ["a"];
					a.goToCartFlag = VIPSHOP.Member.is("_aUser", "suc") || "" == VIPSHOP.Member
						.parseCookie().suc;
					a.secKillDialog = $.Dialog({
						model: !0,
						opacity: 0.3,
						content: $("#J_anti_brush"),
						custom: !0,
						showEvent: function() {
							a.secKillDialog.isOpen = !0
						},
						closeEvent: function() {
							a.secKillDialog.isOpen = !1
						}
					});
					a.secKillDialog.isOpen = !1;
					b.on("click.codeRefresh", "#J_antibrush_code_refresh, #J_antibrush_code",
				function() {
						d.getAntiSecCode()
					});
					b.on("click.antibushBuy", "#J_antibush_buy_btn", function() {
						var b = $("#J_antibrush_code_inp");
						$("#J_unbrush_error");
						var f = $("#J-cProt-tips"),
							b = b.val();
						$.trim(b) ? nsMerchandiseMod.buyMode && 1 == nsMerchandiseMod.buyMode ||
							1 == nsMerchandiseMod.isPrePay && nsMerchandiseMod.prePayFlag ? a
							.specialCheck() : Cart.add({
								size_id: nsMerchandiseMod.selectedSize,
								num: nsMerchandiseMod.num,
								product_id: nsMerchandiseMod.mid,
								verify: d.verify,
								uuid: d.mars_sid,
								captcha: b
							}, d.submitAfter, {}, {
								scene_id: "normal-detail",
								brand_id: nsMerchandiseMod.bid,
								goods_id: nsMerchandiseMod.mid
							}) : (f.show().find("#J_unbrush_error").html(
									"\u9a8c\u8bc1\u7801\u6709\u8bef\uff0c\u8bf7\u91cd\u65b0\u8f93\u5165"
									),
								setTimeout(function() {
									f.hide()
								}, 3E3))
					});
					$(document).on("click.antibushCancel", ".J_antibush_cancel_btn", function() {
						d.secKillDialog.close();
						d.setSubmitBrnToSimple()
					});
					$("#J-cartAdd-frm").on("submit", function(a) {
						a.preventDefault();
						if ($("#J-cartAdd-submit").hasClass("ui-btn-disable"))
							return !1;
						if ($.Cookie.get("VipLID") || 1 != nsMerchandiseMod.isPrePay)
							d.checkForm(!1, "normal-detail");
						else
							return f.redirect(),
								VIPSHOP.login.init({
									loginEvent: function() {
										d.checkForm(!1, "normal-detail")
									}
								}),
								!1
					});
					$(document).on("click", "#J_stage_loan_btn", function(a) {
						a.preventDefault();
						if ($(this).hasClass("ui-btn-disable"))
							return !1;
						VIPSHOP.member.chk();
						if ($.Cookie.get("VipLID"))
							d.checkForm(!0);
						else
							return f.redirect(),
								VIPSHOP.login.init({
									loginEvent: function() {
										d.checkForm(!0)
									}
								}),
								!1
					});
					if (d.isGlobal || 1 == nsMerchandiseMod.isPrePay && nsMerchandiseMod.prePayFlag ||
						nsLoanMod.open)
						b.on("click", ".J-popCol-close", function() {
							d.globalTpisPop.close();
							d.setSubmitBrnToSimple()
						});
					nsLoanMod.open && (a.installmentLoanErrorPop = $.Dialog({
							model: !0,
							custom: !0,
							opacity: 0.3,
							size: "medium",
							elStyle: "loan-error-tips-pop",
							content: $("#J_loan_error_pop_tmpl"),
							showEvent: function() {
								var d = $(".J_count_down_sec");
								a.popCountDown2Close(d, a.installmentLoanErrorPop, a
									.setLoanSubmitBtnToSimple)
							}
						}),
						$(document).on("click", ".J_close_loan_err_pop_btn", function(d) {
							d.preventDefault();
							a.installmentLoanErrorPop.close();
							a.setLoanSubmitBtnToSimple()
						}),
						$(document).on("click", ".J_add_to_cart_btn", function(d) {
							d.preventDefault();
							Cart.add({
								size_id: nsMerchandiseMod.selectedSize,
								num: nsMerchandiseMod.num,
								product_id: nsMerchandiseMod.mid
							}, a.submitAfter, {
								closeLoginCb: function() {
									a.setSubmitBrnToSimple()
								}
							});
							a.installmentLoanErrorPop.close()
						}),
						$.Listeners.sub("set.loan.btn.disabled").onsuccess(function() {
							a.setLoanSubmitBtnToDisabled()
						}),
						$.Listeners.sub("set.loan.btn.availabled").onsuccess(function() {
							a.setLoanSubmitBtnToAvailabled()
						}))
				},
				popCountDown2Close: function(a, d, b) {
					var f = setInterval(function() {
						var c = 1 * a.html();
						1 < c ? a.html(c - 1) : (clearInterval(f),
							f = null,
							d.close(),
							b && b())
					}, 1E3)
				},
				globalTpisPopOpen: function(a) {
					a = $.Template({
						templateElement: $("#J-popCol-msg"),
						replace: null
					}).process({
						errorCodeInfo: a
					});
					d.globalTpisPop = $.Dialog({
						model: !0,
						custom: !0,
						opacity: 0.3,
						content: a,
						showEvent: function() {
							var a = d.globalTpisPop.getElem("#J-popCol-countdown");
							d.globalTpisPop.getElem("#J-popCol-warp").addClass(
								"z-ui-dialog-in");
							d.globalTpisPop.getElem("#J-popCol-msgTxt").html(d
								.globalTpisTxt);
							a.html(3);
							d.popCountDown2Close(a, d.globalTpisPop, d.setSubmitBrnToSimple)
						}
					});
					d.globalTpisPop.open()
				},
				specialCheck: function(a) {
					var c = this,
						k = {
							size_id: nsMerchandiseMod.selectedSize,
							num: nsMerchandiseMod.num,
							from: "global"
						};
					VIPSHOP.member.chk();
					if (!$.Cookie.get("VipLID"))
						return c.dealWhenLoginOut(),
							!1;
					1 == nsMerchandiseMod.isPrePay ? k.from = "prepay" : a && (k.from = "credit",
						k.instalments = nsLoanMod.selectedLoanPeriod);
					b.globalProduct({
						brandId: nsMerchandiseMod.bid,
						goodsId: nsMerchandiseMod.bid,
						sizeId: nsMerchandiseMod.selectedSize
					});
					f.isHk() && (k.loginType = "vipglobal");
					k = f.replaceApiKey(k);
					a = f.auth(c.specialCheckApi, k, "checkout.vip.com", "get", 0);
					$.ajax({
						url: a.url,
						data: a.param,
						jsonp: "callback",
						jsonpCallback: "te_global_check",
						cache: !0,
						dataType: "jsonp",
						timeout: 6E3,
						success: function(a) {
							c.specialCheckCB(a)
						},
						error: function(a, b) {
							c.globalTpisTxt =
								"\u7cfb\u7edf\u7e41\u5fd9\uff0c\u8bf7\u7a0d\u540e\u518d\u8bd5\uff01";
							c.globalTpisPopOpen(d.handleErrorCode({
								code: "",
								trace: "",
								serverDomain: "checkout",
								scene: b
							}))
						}
					})
				},
				specialCheckCB: function(a) {
					switch (a.code) {
						case 200:
							setTimeout(function() {
								window.location.href = a.redirect
							}, 200);
							break;
						case 5003:
							var b = $("#J-cProt-tips");
							b.show().find("#J_unbrush_error").html(
								"\u9a8c\u8bc1\u7801\u6709\u8bef\uff0c\u8bf7\u91cd\u65b0\u8f93\u5165"
								);
							setTimeout(function() {
								b.hide()
							}, 3E3);
							break;
						case 3100:
							this.showLoanErrorTipsPop(a.msg);
							break;
						default:
							this.globalTpisTxt = a.msg,
								this.globalTpisPopOpen(d.handleErrorCode({
									code: a.code || "",
									trace: a.trace || "",
									serverDomain: "checkout"
								}))
					}
				},
				showLoanErrorTipsPop: function(a) {
					this.installmentLoanErrorPop.getElem(".J_error_pop_txt").html(a);
					this.installmentLoanErrorPop.open()
				},
				buildSign: function() {
					var a = [$.Cookie.get("mars_cid"), nsMerchandiseMod.mid,
						"325deeeabba1ce6c897ec468df5c7e26"
					].join("");
					this.verify = md5(a)
				},
				getAntiSecCode: function() {
					this.mars_sid = e.getUuid();
					$("#J_antibrush_code").attr("src", e.getImgUrl(VIPSHOP.detailHost +
						"/list-ajax.php"))
				},
				setSubmitBrnToSimple: function() {
					$("#J-cartAdd-submit").removeClass("z-ui-btn-loading")
				},
				setSubmitBrnToLoading: function() {
					$("#J-cartAdd-submit").addClass("z-ui-btn-loading")
				},
				setLoanSubmitBtnToSimple: function() {
					$("#J_stage_loan_btn").removeClass("z-ui-btn-loading")
				},
				setLoanSubmitBtnToLoading: function() {
					$("#J_stage_loan_btn").addClass("z-ui-btn-loading")
				},
				setLoanSubmitBtnToDisabled: function() {
					$("#J_stage_loan_btn").addClass("ui-btn-disable");
					$(".J_user_credit_unqualified_tips").addClass("z-ui-tooltips-in")
				},
				setLoanSubmitBtnToAvailabled: function() {
					$("#J_stage_loan_btn").removeClass("ui-btn-disable");
					$(".J_user_credit_unqualified_tips").removeClass("z-ui-tooltips-in")
				},
				checkForm: function(a, d) {
					var b = nsMerchandiseMod.selectedSize,
						f = nsMerchandiseMod.num;
					if ($("#J-cartAdd-submit").hasClass("btn-cart-disabled"))
						return !1;
					if (-1 == b)
						return $("#J-sizeArea-wrap").addClass("status-notice"),
							!1;
					if (1 > f)
						return alert("\u5546\u54c1\u5df2\u552e\u5b8c"),
							!1;
					if (this.checkFromCal && !this.checkFromCal())
						return !1;
					$("#J-form-clientTime").val(Math.round((new Date).getTime() / 1E3));
					a ? (this.setLoanSubmitBtnToLoading(),
						this.submit(a)) : (this.setSubmitBrnToLoading(),
						this.submit(!1, d))
				},
				submit: function(a, d) {
					var b = this,
						f = a ? !0 : !1;
					if (nsMerchandiseMod.buyMode && 1 == nsMerchandiseMod.buyMode || 1 ==
						nsMerchandiseMod.isPrePay || a)
						b.specialCheck(f);
					else {
						var f = nsMerchandiseMod.bid,
							c = nsMerchandiseMod.mid,
							e = 0;
						window.I_query.captchaV2 && (e = 1);
						Cart.add({
							size_id: nsMerchandiseMod.selectedSize,
							num: nsMerchandiseMod.num,
							product_id: nsMerchandiseMod.mid,
							captchaV2: e
						}, b.submitAfter, {
							closeLoginCb: function() {
								b.setSubmitBrnToSimple()
							}
						}, {
							scene_id: d,
							brand_id: f,
							goods_id: c
						})
					}
				},
				checkSidebarCartShow: function() {
					if ("undefined" != typeof VIPTE && VIPTE.DETAIL && VIPTE.DETAIL.cartSwitch)
						for (var a = $.Cookie.get("mars_cid"), a = a.substr(a.length - 2, 1), d = VIPTE
								.DETAIL.cartSwitch, b = 0, f = d.length; b < f; b++)
							d[b] == a && (this.cartShowFlag = 1)
				},
				submitAfter: function(a, f, c, e) {
					b.normalProduct({
						brand_id: nsMerchandiseMod.bid,
						goods_id: nsMerchandiseMod.mid,
						sizeId: c.size_id
					});
					if (a.newCart)
						switch (f = a.code,
							f) {
							case 1:
								window._Globals && (window._Globals.VipDFT = parseInt($.Cookie.get(
									"VipDFT")));
								f = (new Date).getTime();
								$.Cookie.set("VipCI_te", c.size_id + "|" + f, ".vip.com", "/");
								if (VIPSHOP.Detect.isIE6) {
									$("#J_popCart_success").show();
									$(".J_pop_close").on("click", function() {
										$("#J_popCart_success").hide()
									});
									clearInterval(d.ie6CartCd);
									var m = $(".J_cart_countDown");
									d.ie6CartCd = setInterval(function() {
										var d = VIPSHOP.Time.fn_countDown(a.end_time);
										m.html(d.min + "\u5206" + d.sec + "\u79d2")
									}, 1E3)
								} else
									window.nsSideBar && (nsAddCartAnimateMod.flyInto(),
										c = $("#J_wrap"),
										$.Listeners.pub("sidebar.addCart.toOpenCart").success(),
										d.t && clearTimeout(d.t),
										d.hold || d.cartShowFlag || (d.t = setTimeout(function() {
											$.Listeners.pub("sidebar.trigger.toOpenCart")
												.success()
										}, 3E3)),
										c.off("mouseenter.submit").on("mouseenter.submit", function() {
											"cartPop" == nsSideBar.wrapShow && (d.t = clearTimeout(d
													.t),
												d.hold = !0)
										}));
								$(".J_cart_count,#J_skuCount").html(a.sku_count);
								$(".J_cart_total").html(a.total);
								$.Listeners.sub("stock_status").onsuccess(function() {
									nsMerchandiseMod.updateStock()
								});
								d.submitSucessCal && d.submitSucessCal();
								d.secKillDialog.isOpen && d.secKillDialog.close();
								$.Listeners.pub("addCartSuccess").success();
								break;
							default:
								nsTopbarMod.popOpen && (nsTopbarMod.sizePop.close(),
										nsTopbarMod.popOpen = !1),
									11E3 == f || 11003 == f ? d.dealWhenLoginOut() : (d.cartMsgPop && d
										.cartMsgPop.destroy(),
										d.cartMsgPop = $.Dialog({
											model: !0,
											opacity: 0.3,
											custom: !0,
											content: $.Template({
												templateElement: $("#J-popCart-msg"),
												replace: null
											}).process({
												errorCodeInfo: d.handleErrorCode({
													code: f,
													serverDomain: "cart"
												})
											}),
											showEvent: function() {
												d.cartMsgPop.getElem("#J-popCart-msgTxt").html(a
													.msg);
												d.cartMsgPop.getElem("#J-popCart-countdown")
													.html(3);
												d.cartMsgPopCloseItv = setInterval(function() {
													var a = d.cartMsgPop.getElem(
															"#J-popCart-countdown"),
														b = 1 * a.html();
													1 < b ? a.html(b - 1) : (
														clearInterval(d
															.cartMsgPopCloseItv),
														d.cartMsgPopCloseItv = null,
														d.cartMsgPop.close())
												}, 3E3)
											}
										}),
										d.cartMsgPop.open(),
										$(document).one("click", "#J-popCart-close", function() {
											clearInterval(d.cartMsgPopCloseItv);
											d.cartMsgPopCloseItv = null;
											d.cartMsgPop.close()
										})),
									nsSizeStockMod.getStockDetailData()
						}
					else
						switch (a.result) {
							case 1:
								window._Globals && (window._Globals.VipDFT = parseInt($.Cookie.get(
									"VipDFT")));
								VIPSHOP.Detect.isIE6 ? ($("#J_popCart_success").show(),
									$(".J_pop_close").on("click", function() {
										$("#J_popCart_success").hide()
									}),
									clearInterval(d.ie6CartCd),
									m = $(".J_cart_countDown"),
									d.ie6CartCd = setInterval(function() {
										var d = VIPSHOP.Time.fn_countDown(a.end_time);
										m.html(d.min + "\u5206" + d.sec + "\u79d2")
									}, 1E3)) : window.nsSideBar && (nsAddCartAnimateMod.flyInto(),
									c = $("#J_wrap"),
									$.Listeners.pub("sidebar.addCart.toOpenCart").success(),
									d.t && clearTimeout(d.t),
									d.hold || d.cartShowFlag || (d.t = setTimeout(function() {
										$.Listeners.pub("sidebar.trigger.toOpenCart")
											.success()
									}, 3E3)),
									c.off("mouseenter.submit").on("mouseenter.submit", function() {
										"cartPop" == nsSideBar.wrapShow && (d.t = clearTimeout(d
												.t),
											d.hold = !0)
									}));
								$(".J_cart_count,#J_skuCount").html(a.sku_count);
								$(".J_cart_total").html(a.total);
								$.Listeners.sub("stock_status").onsuccess(function() {
									nsMerchandiseMod.updateStock()
								});
								d.submitSucessCal && d.submitSucessCal();
								d.secKillDialog.isOpen && d.secKillDialog.close();
								$.Listeners.pub("addCartSuccess").success();
								break;
							default:
								nsTopbarMod.popOpen && (nsTopbarMod.sizePop.close(),
									nsTopbarMod.popOpen = !1);
								if (-1 == a.result)
									d.dealWhenLoginOut();
								else if (500 == a.code)
									d.timeoutPop = $.Dialog({
										model: !0,
										opacity: 0.3,
										custom: !0,
										content: $.Template({
											templateElement: $("#J-timeoutPop-template"),
											replace: null
										}).process({
											errorCodeInfo: d.handleErrorCode({
												code: a.code,
												trace: a.trace || "",
												serverDomain: "cart"
											})
										}),
										showEvent: function() {}
									}),
									d.timeoutPop.open(),
									$(document).on("click", ".J-timeoutPop-close", function() {
										d.timeoutPop.close()
									});
								else if (5003 == a.code || 5006 == a.code) {
									$("#J_unbrush_error");
									var q = $("#J-cProt-tips");
									q.show().find("#J_unbrush_error").html(
										"\u9a8c\u8bc1\u7801\u6709\u8bef\uff0c\u8bf7\u91cd\u65b0\u8f93\u5165"
										);
									setTimeout(function() {
										q.hide()
									}, 3E3)
								} else
									2005 == a.code ? d.specialCheck() : 2006 == a.code ? (d
										.secKillDialog.open(),
										d.getAntiSecCode()) : 5016 == a.code ? (d.cartMsgPop && d
										.cartMsgPop.destroy(),
										d.cartMsgPop = $.Dialog({
											model: !0,
											opacity: 0.3,
											custom: !0,
											content: $.Template({
												templateElement: $("#J-popBanCart-msg"),
												replace: null
											}).process({
												errorCodeInfo: d.handleErrorCode({
													code: a.code,
													trace: a.trace || "",
													serverDomain: "cart"
												})
											}),
											showEvent: function() {
												d.cartMsgPop.getElem("#J-popCart-msgTxt").html(a
													.msg)
											}
										}),
										d.cartMsgPop.open(),
										$(document).one("click", "#J-reload", function() {
											window.location.reload()
										}),
										$(document).one("click", "#J-popCart-close", function() {
											clearInterval(d.cartMsgPopCloseItv);
											d.cartMsgPopCloseItv = null;
											d.cartMsgPop.close()
										})) : 3003 == a.code ? 99 == a.captchaType ? d.openErrorDialog(a
										.msg) : d.createCaptchaV2(a) : 3004 == a.code ? d
									.openErrorDialog(a.msg) : (d.cartMsgPop && d.cartMsgPop.destroy(),
										d.cartMsgPop = $.Dialog({
											model: !0,
											opacity: 0.3,
											custom: !0,
											content: $.Template({
												templateElement: $("#J-popCart-msg"),
												replace: null
											}).process({
												errorCodeInfo: d.handleErrorCode({
													code: a.code,
													trace: a.trace || "",
													serverDomain: "cart"
												})
											}),
											showEvent: function() {
												d.cartMsgPop.getElem("#J-popCart-msgTxt").html(a
													.msg);
												d.cartMsgPop.getElem("#J-popCart-countdown")
													.html(3);
												d.cartMsgPopCloseItv = setInterval(function() {
													var a = d.cartMsgPop.getElem(
															"#J-popCart-countdown"),
														b = 1 * a.html();
													1 < b ? a.html(b - 1) : (
														clearInterval(d
															.cartMsgPopCloseItv),
														d.cartMsgPopCloseItv = null,
														d.cartMsgPop.close())
												}, 1E3)
											}
										}),
										d.cartMsgPop.open(),
										$(document).one("click", "#J-popCart-close", function() {
											clearInterval(d.cartMsgPopCloseItv);
											d.cartMsgPopCloseItv = null;
											d.cartMsgPop.close()
										}));
								nsSizeStockMod.getStockDetailData()
						}
					d.setSubmitBrnToSimple();
					return !1
				},
				handleErrorCode: function(a) {
					var d = a.trace && a.trace.traceId || "";
					return a.scene || d ? c.init({
						traceId: d || "",
						time: a.trace && a.trace.time || "",
						serverDomain: a.serverDomain,
						codeInfo: {
							code: a.code || "",
							scene: a.scene || ""
						}
					}) : ""
				},
				dealWhenLoginOut: function() {
					var a = this;
					nsTopbarMod.popOpen && nsTopbarMod.sizePop.close();
					f.redirect();
					VIPSHOP.login.init({
						loginEvent: function() {
							VIPSHOP.member.chk();
							$("#J-cartAdd-submit").trigger("click")
						},
						closeEvent: function() {
							a.setSubmitBrnToSimple()
						}
					})
				},
				createCaptchaV2: function(a) {
					window.VipSecureCode && (this.openCaptchaV2Dialog(),
						this.initCaptchaV2(a))
				},
				openCaptchaV2Dialog: function() {
					0 == $(".J_captcha_v2_cancel_btn").length && (d.captchaV2Dialog = $.Dialog({
						model: !0,
						effect: {
							effect: "slide",
							duration: 200
						},
						size: "medium",
						custom: !0,
						opacity: 0.3
					}));
					$(document).one("click", ".J_captcha_v2_cancel_btn, .J_couponFailClose",
				function() {
						d.captchaV2Dialog && d.captchaV2Dialog.close()
					});
					d.captchaV2Dialog.open();
					d.captchaV2Dialog.content($("#J_captcha_v2"))
				},
				initCaptchaV2: function(a) {
					window.VipSecureCode.init();
					var b = {},
						f = {
							captchaId: a.captchaId,
							templateId: a.templateId,
							captchaType: a.captchaType,
							extend: a.extend
						};
					d.captchaId = a.captchaId;
					b = {
						targetId: "J_add_cart_captcha_v2",
						params: f,
						id: "J_add_cart_captcha_v2_dom",
						exCls: "",
						label: "top",
						labelText: "",
						onPassed: d.captchaV2PassedCB
					};
					window.VipSecureCode.load({
						url: a.templateId,
						success: function() {
							d.captchaInstance = window.VipSecureCode.createInstance(b);
							d.captchaInstance.show()
						},
						error: function() {}
					})
				},
				captchaV2PassedCB: function(a) {
					var b = this;
					d.captchaV2Dialog.close();
					Cart.add({
						size_id: nsMerchandiseMod.selectedSize,
						num: nsMerchandiseMod.num,
						captchaV2: 1,
						captchaId: d.captchaId,
						captchaTicket: a.data.ticket
					}, d.submitAfter, {
						closeLoginCb: function() {
							b.setSubmitBrnToSimple()
						}
					}, {
						scene_id: "normal-detail",
						brand_id: nsMerchandiseMod.bid,
						goods_id: nsMerchandiseMod.mid
					})
				},
				openErrorDialog: function(d) {
					var b = $.Dialog({
						model: !0,
						opacity: 0.3
					});
					b.content(a("J_captcha_v2_error", {
						msg: d
					}));
					b.open()
				}
			};
		h.exports = d
	}, {
		"../../../../bo/error/takeErrorCode.js": 4,
		"../../../../common/modules/mars/addCartMars": 13,
		"../../../../plugins/modules/checkLogin/globalLogin.js": 94,
		"../../../../plugins/modules/template": 100,
		CaptchaAPI: 7
	}],
	18: [function(g, h, p) {
		window.addressModel = g("./model.js");
		window.addressView = g("./view.js");
		h.exports = {
			init: function() {
				addressModel.init();
				addressView.init()
			}
		}
	}, {
		"./model.js": 19,
		"./view.js": 20
	}],
	19: [function(g, h, p) {
		var e = g("../../../../plugins/modules/http/httpV2.js");
		window.SrsMod = g("../srs/index.js");
		h.exports = {
			init: function() {
				SrsMod.init();
				this.subEvents()
			},
			subEvents: function() {
				var c = this;
				$.Listeners.sub("address.select").onsuccess(function(b) {
					c.getAddress(b.id, b.typeName)
				})
			},
			getAddress: function(c, b) {
				e({
					url: "//myi.vip.com/address/address",
					data: {
						areaid: c,
						newIsBind: 0
					},
					type: "GET",
					dataType: "jsonp",
					jsonpCallback: "getAddress" + (new Date).getTime(),
					timeout: 8E3,
					context: {
						areaid: c,
						typeName: b
					},
					successCallback: function(a) {
						if (1 >= a.list.length) {
							var b = this.context.typeName;
							a = this.context.areaid;
							$.Listeners.pub("address.get.lastLevel").success({
								id: a,
								typeName: b
							})
						} else
							b = this.context.typeName,
							$.Listeners.pub("address.get.success").success({
								data: a,
								typeName: b
							})
					},
					errorCallback: function() {
						VIPSHOP.log("\u5730\u5740\u63a5\u53e3\u8bf7\u6c42\u5931\u8d25")
					}
				})
			}
		}
	}, {
		"../../../../plugins/modules/http/httpV2.js": 96,
		"../srs/index.js": 73
	}],
	20: [function(g, h, p) {
		var e = g("../../../../shop/addressCookie");
		h.exports = {
			init: function() {
				this.ADDRESS_STORAGE_LENGTH = 10;
				this.addressNameArr = ["province", "city", "country", "street"];
				this.prevAddress = {
					province: "province",
					city: "province",
					country: "city",
					street: "country"
				};
				this.isAreaSwitch = VIPSHOP.isAreaSwitch;
				this.initial();
				this.bindEvents();
				this.subEvents()
			},
			subEvents: function() {
				var c = this;
				$.Listeners.sub("address.get.success").onsuccess(function(b) {
					c.getAddressSuccess(b)
				});
				$.Listeners.sub("address.get.lastLevel").onsuccess(function(b) {
					c.handleLastAddress(b.id)
				})
			},
			bindEvents: function() {
				var c = this;
				$(document).on("click", "#J_address_box_close", function(b) {
					c.resetCnt();
					b.stopPropagation()
				});
				$(document).on("click", function(b) {
					b = $(b.target);
					$("#J_address_box").hasClass("delivery-address-box-open") && !$(
						"#J_address_module").has(b).length && c.resetCnt()
				});
				$(document).on("click", ".J_address_tab", function() {
					c.addressTabClick(this)
				});
				$(document).on("click", "#J_address_box", function() {
					c.addressBoxClick(this)
				});
				$(document).on("click", ".J_address_item", function(b) {
					c.addressItemClick(this);
					b.stopPropagation()
				})
			},
			initial: function() {
				var c = $.Storage.get("address_storage_infoV2"),
					b = 0;
				this.hasAnyAddress = !1;
				if (c && c.length) {
					e.get(1);
					for (var a = this.addressNameArr, f = 0, d = c.length; f < d; f++) {
						for (var n = c[f], l = n.tabName, n = n.tabAreaIds, k = 0, t = a.length; k <
							t; k++) {
							var m = a[k];
							if ((n[m] ? n[m] : "") == e.getAreaId(m))
								b = 1;
							else {
								b = 0;
								break
							}
						}
						if (b) {
							k = 0;
							for (t = a.length; k < t; k++)
								m = a[k],
								f = 0,
								l[m] && (0 < k && (f = n[this.prevAddress[m]]),
									$("#J_tab_" + m + "_name").html(l[m]).data("id", n[m]),
									$("#J_tab_" + m).data("prevId", f).removeClass("hidden"),
									$("#J_tab_" + m).data("isAjax", "").addClass(
										"delivery-address-select-curr").siblings().removeClass(
										"delivery-address-select-curr"),
									$("#J_" + m + "_container").removeClass("hidden").siblings()
									.addClass("hidden"),
									$("#J_address_box").data("id", n[m]).data("prevId", f).data(
										"flag", m));
							this.handleDefaultName(l);
							this.handleSpecialRule();
							$.Listeners.pub("get.srs").success({
								getSRSAreaId: $("#J_address_box").data("id"),
								tabAreaIds: n
							});
							break
						}
					}
				}
				c && b || ($("#J_tab_default_name").removeClass("hidden"),
					$("#J_tab_dynamic_name").addClass("hidden"),
					$(".J_address_tab:gt(0)").addClass("hidden"),
					$("#J_tab_province_name").data("id", ""))
			},
			getAddressSuccess: function(c) {
				var b = c.typeName;
				c = $.Tpl("J_address_tpl", c.data);
				$("#J_" + b + "_container").html(c).removeClass("hidden").siblings().addClass(
					"hidden");
				$("#J_tab_" + b).data("isAjax", "done").removeClass("hidden").addClass(
					"delivery-address-select-curr").siblings().removeClass(
					"delivery-address-select-curr");
				b = $("#J_tab_" + b + "_name").data("id");
				$(".J_item" + b).addClass("delivery-address-item-curr");
				this.hasAnyAddress = !0
			},
			resetCnt: function() {
				$("#J_address_box").removeClass("delivery-address-box-open");
				this.initial()
			},
			addressItemClick: function(c) {
				c = $(c);
				var b = c.data("id"),
					a = c.data("name"),
					f = c.data("type") - 0,
					d, n;
				c.addClass("delivery-address-item-curr").siblings().removeClass(
					"delivery-address-item-curr");
				switch (f) {
					case 0:
						n = "province";
						d = "city";
						break;
					case 1:
						n = "city";
						d = "country";
						break;
					case 2:
						n = "country";
						d = "street";
						break;
					case 3:
						n = "street",
							d = "getSRS"
				}
				$("#J_tab_" + n + "_name").data("id", b).html(a).nextAll().html("");
				$("#J_" + n + "_container").nextAll().html("");
				$("#J_tab_" + n).nextAll().addClass("hidden");
				this.handleSpecialRule();
				$("#J_tab_default_name").addClass("hidden");
				$("#J_tab_dynamic_name").removeClass("hidden");
				"getSRS" == d ? this.handleLastAddress(b) : $.Listeners.pub("address.select")
					.success({
						id: b,
						typeName: d
					})
			},
			handleLastAddress: function(c) {
				$("#J_address_box").removeClass("delivery-address-box-open");
				$("#J_address_module").removeClass("freight-error");
				this.handleTabNameAndStorage(c);
				$.Listeners.pub("get.merchandise.relevance").success({
					province: $("#J_tab_province_name").data("id"),
					city: $("#J_tab_city_name").data("id"),
					country: $("#J_tab_country_name").data("id"),
					street: $("#J_tab_street_name").data("id"),
					provinceName: $("#J_tab_province_name").html(),
					cityName: $("#J_tab_city_name").html(),
					countryName: $("#J_tab_country_name").html(),
					streetName: $("#J_tab_street_name").html()
				})
			},
			handleSpecialRule: function() {
				$("#J_tab_city_name").html() == $("#J_tab_province_name").html() ? $(
					"#J_tab_city_name").addClass("hidden") : $("#J_tab_city_name").removeClass(
					"hidden");
				"\u6211\u4e0d\u6e05\u695a" == $("#J_tab_street_name").html() ? $(
						"#J_tab_street_name").addClass("hidden") : $("#J_tab_street_name")
					.removeClass("hidden")
			},
			handleDefaultName: function(c) {
				"\u6211\u4e0d\u6e05\u695a" != c.street && c.street || (c.street = "");
				void 0 == c.province && (c.province = "");
				void 0 == c.city && (c.city = "");
				void 0 == c.country && (c.country = "");
				void 0 == c.street && (c.street = "");
				c.province == c.city ? ($("#J_address_box").attr("title", c.province + c.country + c
						.street),
					$("#J_tab_default_name").html(c.province + "&nbsp;" + c.country + "&nbsp;" +
						c.street)) : ($("#J_address_box").attr("title", c.province + c.city + c
						.country + c.street),
					$("#J_tab_default_name").html(c.province + "&nbsp;" + c.city + "&nbsp;" + c
						.country + "&nbsp;" + c.street))
			},
			handleTabNameAndStorage: function(c) {
				for (var b = {}, a = {}, f = {}, d = this.addressNameArr, n = $.Storage.get(
						"address_storage_infoV2") || [], e = 0, k = d.length; e < k; e++) {
					var t = d[e],
						m = $("#J_tab_" + t + "_name");
					m.html() && (b[t] = m.html(),
						a[t] = m.data("id"),
						$("#J_address_box").data("id", m.data("id")))
				}
				$.Listeners.pub("get.srs").success({
					getSRSAreaId: c,
					tabAreaIds: a
				});
				f.tabName = b;
				f.tabAreaIds = a;
				n.unshift(f);
				n.length > this.ADDRESS_STORAGE_LENGTH ? n.splice(this.ADDRESS_STORAGE_LENGTH - 1) :
					"";
				$.Storage.set("address_storage_infoV2", n);
				this.handleDefaultName(b)
			},
			addressTabClick: function(c) {
				c = $(c);
				var b = c.data("flag"),
					a = c.data("prevId"),
					f = c.data("isAjax");
				c.addClass("delivery-address-select-curr").siblings().removeClass(
					"delivery-address-select-curr");
				$("#J_" + b + "_container").removeClass("hidden").siblings().addClass("hidden");
				!f && $.Listeners.pub("address.select").success({
					id: a,
					typeName: b
				})
			},
			addressBoxClick: function(c) {
				c = $(c);
				var b = c.data("prevId") || 0,
					a = c.data("flag");
				c.addClass("delivery-address-box-open");
				this.hasAnyAddress || $.Listeners.pub("address.select").success({
					id: b,
					typeName: a
				})
			}
		}
	}, {
		"../../../../shop/addressCookie": 111
	}],
	21: [function(g, h, p) {
		window.nsProductComment = g("../comment/nsProductComment.js");
		var e = g("../../../../plugins/modules/checkLogin/globalLogin.js"),
			c = {
				bar: $("#J-topbar"),
				addBtn: $("#J-topbar-addBtn"),
				scrollStart: 0,
				start_time: +new Date,
				cur_time: "",
				timer: null,
				sTop: 0,
				sizePop: null,
				popOpen: !1,
				scrollToAbout: !1,
				conts: [],
				domTab: {
					productDetail: "J-detailCon",
					productComment: "J-FW-prdComment",
					productFootprint: "J-footprint-mod",
					productRecomBox: "J-FW-recomBox",
					productQuestion: "J-FW-question",
					productService: "J-saleServiceList",
					productAboutus: "J-FW-aboutUs"
				},
				event: {
					sub: {
						topBarReset: "detail.topBarTab.reset",
						getDetailInfoSuccess: "getDetailInfo.detail.success",
						getInfoAndSkuSuccess: "getInfoAndSkuSuccess.detail.success"
					}
				},
				data: {
					sumData: {}
				},
				init: function(b) {
					var a = this;
					$.Listeners.sub(a.event.sub.getDetailInfoSuccess).onsuccess(function(b) {
						b.product && (a.data.sumData = b,
							$.Listeners.sub(a.event.sub.getInfoAndSkuSuccess).onsuccess(
								function(d) {
									d.pcSkuData.product_price_range_mapping[b.product
										.productIdStr] ? a.renderTopbar(b, d) : (a
										.renderTopbar(b, ""),
										$("#J-dt-cart-btn").addClass("ui-btn-disable"))
								}));
						$.Listeners.sub("getProductInfo.detail.fail").onsuccess(function() {
							$("#J-dt-cart-btn").addClass("ui-btn-disable");
							a.renderTopbar(b, "")
						})
					})
				},
				renderTopbar: function(b, a) {
					var f = b.product,
						d = f.brandIdStr,
						c = 0,
						e = "\u52a0\u5165\u8d2d\u7269\u888b",
						k = "",
						t, k = f.min_vipshop_price;
					f.buyMode && 1 == f.buyMode && (e = "\u7acb\u5373\u8d2d\u4e70");
					if (a && (2 == a.detailStatus && a.pcBrandInfo.brands[d].warmupTpl && b.pcBrandInfo
							.brands[d].warmupTpl.isAllowCollect && 1 == a.pcBrandInfo.brands[d]
							.warmupTpl.isAllowCollect && a.pcSkuData.skus && 0 < Object.keys(a.pcSkuData
								.skus).length && (c = 1),
							a.pcSkuData.product_price_range_mapping[f.productIdStr])) {
						var m = a.pcSkuData.product_price_range_mapping[f.productIdStr].prepay,
							d = a.pcSkuData.product_price_range_mapping[f.productIdStr];
						if (1 == m)
							e = "\u652f\u4ed8\u5b9a\u91d1";
						else if (d.buyMode && 1 == d.buyMode || f.buyMode && 1 == f.buyMode)
							e = "\u7acb\u5373\u8d2d\u4e70";
						t = d.priceView.salePrice.salePriceTips;
						k = d.priceView.salePrice.salePrice
					}
					c = {
						detailStatus: f.detailStatus,
						isAllowCollect: c,
						btnTitle: e,
						prepay: m ? m : 0,
						salePrice: k,
						salePriceTips: t || ""
					};
					$("#J-topbar-wrap").html($.Tpl("J-topbar-wrap_tpl", c));
					f.saleServiceList && !(1 > f.saleServiceList.length) && f.saleServiceList[0].name &&
						f.saleServiceList[0].value || $(".J_saleServiceList").addClass("hidden");
					this.initOther()
				},
				initOther: function() {
					addBtn = $("#J-topbar-addBtn").find("#J-dt-cart-btn");
					this.contsFun && (this.conts = this.contsFun());
					if (!VIPSHOP.Detect.isIE6)
						if (this.scrollStart = parseInt($("#J-topbar-wrap").offset().top),
							$(window).on("scroll.topbar", function() {
								c.topbarScroll.call(c)
							}).trigger("scroll.topbar"),
							this.initPop(),
							nsMerchandiseMod.isSaleout)
							addBtn.addClass("ui-btn-disable");
						else
							addBtn.on("click", this.popToggle);
					this.tabInitHeight = $("#J-topbar-wrap").offset().top;
					this.bindListeners();
					this.bindEvent();
					window.nsProductComment.init()
				},
				bindEvent: function() {
					$(window).scroll(function() {
						var b = $("#J-detailCon").offset().top;
						$(this).scrollTop() >= b && $(".J_detailCon").addClass("selected")
							.siblings().removeClass("selected");
						b = $("#J-proShow-scroll").offset().top;
						$(this).scrollTop() >= b && $(".J_proShow_scroll").addClass("selected")
							.siblings().removeClass("selected");
						0 < $(".J-detail-commentCnt").length && (b = $("#J-FW-prdComment")
							.offset().top,
							$(this).scrollTop() >= b && $(".J-detail-commentCnt").addClass(
								"selected").siblings().removeClass("selected"));
						b = $("#J-FW-question").offset().top;
						$(this).scrollTop() >= b && $(".J_FW_question").addClass("selected")
							.siblings().removeClass("selected");
						0 < $(".J_saleServiceList").length && (b = $("#J-saleServiceList")
							.offset().top,
							$(this).scrollTop() >= b && !$(".J_saleServiceList").hasClass(
								"hidden") && $(".J_saleServiceList").addClass("selected")
							.siblings().removeClass("selected"));
						b = $("#J-FW-aboutUs").offset().top;
						$(this).scrollTop() >= b && $(".J_FW_aboutUs").addClass("selected")
							.siblings().removeClass("selected");
						b = $(".FW-wrap").offset().top;
						$(this).scrollTop() < b && $(".J_detailCon").addClass("selected")
							.siblings().removeClass("selected")
					});
					$(document).on("click", ".J-topbar-tabs", function() {
						var b = $(this).data("scroll");
						$("#" + b).show().siblings().show();
						$(this).addClass("selected").siblings().removeClass("selected")
					})
				},
				bindListeners: function() {
					var b = this;
					$.Listeners.sub(b.event.sub.topBarReset).onsuccess(function(a) {
						for (var f = a.rmObj, d = b.conts, n = 0, e = d.length; n < e; n++)
							if (d[n].attr("id") == f) {
								d.splice(n, 1);
								break
							}
						$.Listeners.pub(a.pubEvent).success();
						$(window).off("scroll.topbar");
						$(window).on("scroll.topbar", function() {
							c.topbarScroll.call(c)
						}).trigger("scroll.topbar");
						$(".J-detail-commentCnt").on("click", function() {
							$(this).addClass("selected").siblings().removeClass(
								"selected")
						})
					})
				},
				topbarScroll: function() {
					this.cur_time = +new Date;
					clearTimeout(this.timer);
					this.sTop = $(window).scrollTop();
					200 < this.cur_time - this.start_time ? (this.scrollEvent(),
						this.start_time = this.cur_time) : this.timer = setTimeout(function() {
						c.scrollEvent.call(c)
					}, 100)
				},
				scrollEvent: function() {
					$("#J-topbar .J-topbar-tabs");
					this.trigger = $("#J-topbar .J-topbar-tabs");
					this.sTop > this.scrollStart ? ($("#J-topbar").addClass("M-detailTopFixed"),
						$("#J-topbar-addBtn").removeClass("hidden")) : ($("#J-topbar").removeClass(
							"M-detailTopFixed"),
						$("#J-topbar-addBtn").addClass("hidden"),
						this.popOpen && this.sizePop.close(),
						this.popOpen = !1)
				},
				initPop: function() {
					this.sizePop = $.Dialog({
						model: !0,
						opacity: 0.3,
						size: [480],
						custom: !0,
						content: $("#J-topbar-pop-template"),
						showEvent: this.sizePopShowEvent
					});
					$(document).on("click", "#J-topbar-pop-close", function() {
						c.sizePop.close();
						c.popOpen = !1
					}).on("click", "#J-topbarPop-submit", function(b) {
						b.preventDefault();
						c.sizePop.close();
						nsFormMod.checkForm(!1, "normal-detail-suspension")
					})
				},
				contsFun: function() {
					return [$("#J-FW-detail"), $("#J-FW-prdComment"), $("#J-FW-question"), $(
						"#J-saleServiceList"), $("#J-FW-aboutUs")]
				},
				sizePopShowEvent: function() {
					var b = [],
						a = {},
						f;
					$("#J-sizeArea-wrap .J-sizeID").each(function(a) {
						a = $(this).data("id");
						b.push(a)
					});
					if (nsMerchandiseMod.isUseSizeSelector)
						$(".J-topBarAdd-sizeID").html(nsMerchandiseMod.selectorOptionHtml);
					else
						for (var d = nsSizeStockMod.stockData, c = 0; c < b.length; c++)
							if (f = b[c],
								"undefined" != typeof d[b[c]])
								switch (a = d[f],
									a.type) {
									case 1:
										$("#J-topBarAdd-sizeID-" + f).addClass("sli-disabled");
										break;
									case 2:
										$("#J-topBarAdd-sizeID-" + f).addClass("sli-have-chance")
								}
					else
						$("#J-topBarAdd-sizeID-" + f).addClass("sli-disabled");
					nsMerchandiseMod.less_stock && $("#J-topbarProStock-type").html(nsMerchandiseMod
						.less_stock_tips[1]).show();
					nsMerchandiseMod.isUseSizeSelector ? ($(".J-topBarAdd-sizeID").Selector({
								clone: "#J-topbarCartAdd-vSizeID",
								classPre: "selector",
								defTxt: "- \u8bf7\u9009\u62e9 -",
								evtChoose: function() {
									var a = $(".J-topBarAdd-sizeID").val();
									nsMerchandiseMod.selectedSize != a && $("#J-cartAdd-sizeID")
										.Selector("render").Selector("click", 0, a)
								}
							}),
							0 < nsMerchandiseMod.selectedSize && $(".J-topBarAdd-sizeID").Selector(
								"render").Selector("click", 0, nsMerchandiseMod.selectedSize)) : 0 <
						nsMerchandiseMod.curSizeCount && $("#J-topBarAdd-sizeID-" + nsMerchandiseMod
							.selectedSize).trigger("click")
				},
				popToggle: function() {
					var b = c;
					if ($("#J-dt-cart-btn").hasClass("ui-btn-disable"))
						return !1;
					VIPSHOP.member.chk();
					if (!VIPSHOP.member.info && !$.Cookie.get("Guest_ID"))
						return e.redirect(),
							VIPSHOP.login.init({
								loginEvent: function() {
									VIPSHOP.member.chk()
								}
							}),
							!1;
					b.data.sumData && b.data.sumData.brand && (0 != b.data.sumData.brand
						.area_freight_id ? -1 == nsMerchandiseMod.selectedSize ? ($(
								"#J-sizeArea-wrap").addClass("status-notice"),
							$(window).scrollTop(0)) : 0 == $("#J_address_box").data("id") ? ($(
								"#J_address_module").addClass("freight-error"),
							$(window).scrollTop(0)) : (c.sizePop.open(),
							c.popOpen = !0,
							$("#J-topbarPop-submit").trigger("click")) : -1 == nsMerchandiseMod
						.selectedSize ? ($("#J-sizeArea-wrap").addClass("status-notice"),
							$(window).scrollTop(0)) : (c.sizePop.open(),
							c.popOpen = !0))
				}
			};
		h.exports = c
	}, {
		"../../../../plugins/modules/checkLogin/globalLogin.js": 94,
		"../comment/nsProductComment.js": 22
	}],
	22: [function(g, h, p) {
		var e = g("../../../../plugins/modules/Simulate/FakeA"),
			c = g("../../../../plugins/modules/template/index.js"),
			b = g("../../../../plugins/modules/Scroll/LazyDomHelper.js"),
			a = g("../video/nsPlayVideo.js"),
			f = g("../../../../plugins/modules/http/httpV2.js"),
			d = g("../../../../plugins/urlParam.js"),
			n = g("../../../../bo/switch/index.js"),
			l = g("../../../../plugins/modules/checkLogin/globalLogin.js");
		g = {
			isIe8: "MSIE" == VIPSHOP.Detect.browser && 8 >= parseInt(VIPSHOP.Detect.version),
			commentListUrl: "//pcapi.vip.com/comment/getList.php",
			commentSummaryUrl: "//pcapi.vip.com/comment/getSumInfo.php",
			commentAgentUrl: "//detail.vip.com/v2/mapi",
			queryBySpuIdUrl: "//mapi.vip.com/vips-mobile/rest/content/reputation/queryBySpuId_for_pc",
			getSpuIdNlpKeyword: "//mapi.vip.com/vips-mobile/rest/ugc/reputation/getSpuIdNlpKeywordV2_for_pc",
			getCountBySpuIdUrl: "//mapi.vip.com/vips-mobile/rest/content/reputation/getCountBySpuId_for_pc",
			commentUseful: "//mapi.vip.com/vips-mobile/rest/content/reputation/useful_for_pc",
			spuId: "",
			cateId: "",
			brandId: "",
			isLoadedPicOnlyTab: !1,
			isLoadedAllcmtTab: !1,
			tabCurrentPage: {
				all: 1
			},
			totalPageMap: {
				all: 0
			},
			commentCount: {
				all: 0
			},
			commentCache: {
				keyWord: {},
				keyWordPageMax: {},
				tryReport: {}
			},
			isSumInfoLoaded: !1,
			pageInited: !1,
			pageSize: 10,
			curSelectedKeyWord: "",
			$commentOutter: $("#J-FW-prdCommentList"),
			scoreConfig: {
				0: "start-score-0",
				1: "start-score-1",
				2: "start-score-2",
				3: "start-score-3",
				4: "start-score-4",
				5: "start-score-5",
				6: "start-score-6",
				7: "start-score-7",
				8: "start-score-8",
				9: "start-score-9"
			},
			userLevel: {
				D1: "\u94f6\u5361\u4f1a\u5458",
				D2: "\u91d1\u5361\u4f1a\u5458",
				D3: "\u767d\u91d1\u5361\u4f1a\u5458"
			},
			UI: {
				commentListWrapper: "#J_comment_list_wrapper",
				commentSummaryWrapper: "#J_comment_summary_wrapper",
				commentPicItem: ".J_comment_pic",
				commentThumbnail: ".J_comment_thumbnail",
				previewPicWrapper: ".J_preview_pic_wrapper",
				previewZoomOutPic: ".J_preview_zoomout_pic",
				previewTabPrev: ".J_preview_tab_prev",
				previewTabNext: ".J_preview_tab_next",
				commentTagItem: ".c-comment-tag",
				commentReadAll: ".J_comment_read_all",
				commentCloseAll: ".J_comment_close_all",
				commentLikeLink: ".J_comment_like_link"
			},
			status: {
				hiddenClass: "hidden",
				currentCommentListTab: "z-current-comment-tab",
				picCurrentSelected: "z-current-selected",
				commentPicZoomOut: "z-comment-pic-zoom-out",
				commentPicZoomIn: "z-comment-pic-zoom-in",
				previewingPic: "z-previewing-pic",
				firstItemPreview: "z-first-item-preview",
				lastItemPreview: "z-last-item-preview",
				onlyOneItemPreview: "z-only-one-item-preview",
				keywordSelected: "totle-tag-selected",
				noCommentAttrStatus: "z-no-comment-attribute"
			},
			event: {
				sub: {
					getBrandInfoSuccess: "getBrandInfo.detail.success"
				}
			},
			data: {
				reputationShowSwitch: "reputation_show_switch",
				repuattionUseful: "//shop.vipstatic.com/img/detail/icon_small_like_tip-hash-80ab5b64.png",
				repuattionUsefulNormal: "//shop.vipstatic.com/img/detail/icon_small_like_normal-hash-12e258ae.png"
			},
			init: function() {
				n.get(this.data.reputationShowSwitch);
				this.subEvent()
			},
			_init: function() {
				e.init();
				this.bindEvent();
				this.getCommentData(this.tabCurrentPage.all, this.curSelectedKeyWord)
			},
			subEvent: function() {
				var a = this;
				$.Listeners.sub("getSwitch.success").onsuccess(function(d) {
					a.getSwitchSuccess(d)
				});
				$.Listeners.sub("getSwitch.fail").onsuccess(function() {
					a.getSwitchFail()
				});
				$.Listeners.sub("get.comment.summary.success").onsuccess(function(d) {
					a.getCommentSumSuccess(d.data);
					a._init()
				});
				$.Listeners.sub("show.blank.comment.field").onsuccess(function() {
					a.showBlankCommentField()
				});
				$.Listeners.sub("detail.get.commentNotShowData").onsuccess(function() {
					$(".J-detail-commentCnt").remove()
				});
				$.Listeners.sub("VipPaginator.detail.currentPage").onsuccess(function(d) {
					a.getCommentData(d.cp, a.curSelectedKeyWord);
					a.scrollTo(a.$commentOutter)
				})
			},
			getSwitchSuccess: function(a) {
				var d = this,
					f = $(".J-detail-commentCnt");
				if (a.reputation_show_switch)
					$.Listeners.sub(d.event.sub.getBrandInfoSuccess).onsuccess(function(a) {
						d.spuId = a.product.spuId ? a.product.spuId : "";
						d.cateId = a.product.newCatId ? a.product.newCatId : "";
						d.brandId = a.product.brandIdStr ? a.product.brandIdStr : "";
						f.removeClass("hidden");
						d.getCommentCount();
						d.getSpuIdNlpData();
						new b({
							$dom: $("#J-FW-prdComment"),
							preHeight: 200,
							loadingFn: function() {
								!d.pageInited && d.isSumInfoLoaded && (d._init(),
									d.pageInited = !0)
							}
						})
					});
				else
					f.remove()
			},
			getSwitchFail: function() {
				$(".J-detail-commentCnt").remove()
			},
			bindEvent: function() {
				var d = this;
				$(document).on("click", d.UI.commentPicItem, function() {
					var b = $(this).data("index"),
						f = $(this).data("isvideo"),
						c = $(this).data("videosrc"),
						n = $(this).data("videoindex"),
						e = $(this).parent("ul"),
						l = e.next(d.UI.previewPicWrapper),
						g = e.find(d.UI.commentPicItem).length,
						h = l.find(d.UI.previewZoomOutPic),
						v;
					$(this).find("img").hasClass("c-comment-pic-error") || ($(this)
						.hasClass(d.status.picCurrentSelected) ? ($(this).removeClass(d
								.status.picCurrentSelected),
							l.animate({
								width: "0",
								height: "0"
							}, 100, function() {
								$(this).removeClass(d.status.previewingPic)
							}),
							$(this).addClass(d.status.commentPicZoomIn).removeClass(d
								.status.commentPicZoomOut),
							f && (e.next().next().addClass("hidden"),
								a.init({
									isDispose: 1,
									videoIndex: n
								}))) : ($(this).siblings(d.UI.commentPicItem).addClass(d
								.status.commentPicZoomIn).removeClass(d.status
								.commentPicZoomOut),
							e.find(d.UI.commentPicItem).removeClass(d.status
								.picCurrentSelected),
							$(this).addClass(d.status.picCurrentSelected),
							v = $(this).find(".J_comment_thumbnail").data("img"),
							h.attr("src", v),
							l.animate({
								width: "408px",
								height: "100%"
							}, 100, function() {
								$(this).addClass(d.status.previewingPic)
							}),
							$(this).addClass(d.status.commentPicZoomOut).removeClass(d
								.status.commentPicZoomIn),
							l.removeClass(d.status.firstItemPreview + " " + d.status
								.lastItemPreview),
							1 < g && 0 == b ? l.addClass(d.status.firstItemPreview) :
							1 < g && b == g - 1 && l.addClass(d.status.lastItemPreview),
							f ? (b = e.next().next(),
								f = e.next().next().next(),
								d.renderVideoData(c, n, b, f),
								a.init({
									isDispose: 0,
									videoIndex: n
								}),
								e.next().next().removeClass("hidden"),
								e.next().addClass("hidden")) : (e.next().next()
								.addClass("hidden"),
								e.next().removeClass("hidden"))))
				});
				$(document).on("click", d.UI.previewZoomOutPic, function() {
					var a = $(this).parents(d.UI.previewPicWrapper);
					a.hasClass(d.status.previewingPic) && (a.removeClass(d.status
							.previewingPic).animate({
							width: "0",
							height: "0"
						}, 100),
						a.prev("ul").find(d.UI.commentPicItem).removeClass(d.status
							.picCurrentSelected),
						a.prev("ul").find(d.UI.commentPicItem).addClass(d.status
							.commentPicZoomIn).removeClass(d.status.commentPicZoomOut))
				});
				$(document).on("click", d.UI.previewTabPrev, function() {
					var a = $(this).parents(d.UI.previewPicWrapper),
						b = a.prev("ul"),
						f = b.find(d.UI.commentPicItem).length,
						c = b.find("." + d.status.picCurrentSelected).data("index"),
						n = a.find(d.UI.previewZoomOutPic);
					if (1 < f && 0 < c) {
						var f = window.parseInt(c) - 1,
							c = b.find(d.UI.commentPicItem)[f],
							e = $(c).find(d.UI.commentThumbnail).data("img");
						n.attr("src", e);
						a.animate({
							width: "408px",
							height: "100%"
						}, 100, function() {
							$(this).addClass(d.status.previewingPic)
						});
						b.find(d.UI.commentPicItem).removeClass(d.status
						.picCurrentSelected);
						$(c).addClass(d.status.picCurrentSelected);
						0 == f ? (a.hasClass(d.status.lastItemPreview) && a.removeClass(d
								.status.lastItemPreview),
							a.addClass(d.status.firstItemPreview)) : a.removeClass(d
							.status.lastItemPreview)
					}
				});
				$(document).on("click", d.UI.previewTabNext, function() {
					var a = $(this).parents(d.UI.previewPicWrapper),
						b = a.prev("ul"),
						f = b.find(d.UI.commentPicItem).length,
						c = b.find("." + d.status.picCurrentSelected).data("index"),
						n = a.find(d.UI.previewZoomOutPic);
					if (1 < f && c < f - 1) {
						var c = window.parseInt(c) + 1,
							e = b.find(d.UI.commentPicItem)[c],
							l = $(e).find(d.UI.commentThumbnail).data("img");
						n.attr("src", l);
						a.animate({
							width: "408px",
							height: "100%"
						}, 100, function() {
							$(this).addClass(d.status.previewingPic)
						});
						b.find(d.UI.commentPicItem).removeClass(d.status
						.picCurrentSelected);
						$(e).addClass(d.status.picCurrentSelected);
						c == f - 1 ? (a.hasClass(d.status.firstItemPreview) && a
							.removeClass(d.status.firstItemPreview),
							a.addClass(d.status.lastItemPreview)) : a.removeClass(d
							.status.firstItemPreview)
					}
				});
				$(document).on("click", d.UI.commentTagItem, function() {
					var a = $(this),
						b = "",
						f = $(d.UI.commentTagItem),
						c;
					c = d.totalPageMap.all;
					var n = d.tabCurrentPage.all;
					a.hasClass(d.status.keywordSelected) ? a.removeClass(d.status
						.keywordSelected) : (f.removeClass(d.status.keywordSelected),
						a.addClass(d.status.keywordSelected),
						b = a.data("tagName"),
						c = 1 * a.data("tagNum"),
						c = Math.ceil(c / 10),
						n = 1);
					d.curSelectedKeyWord = b;
					a = d.getKeywordSelectedNlp(b)[0];
					d.commentCache.keyWordPageMax[a] ? c = d.commentCache.keyWordPageMax[
						a] : d.commentCache.keyWordPageMax[a] = c;
					d.initAllCommentPagination(c, n);
					d.getCommentData(n, b)
				});
				$(document).on("click", d.UI.commentLikeLink, function() {
					var a = $(this);
					if (1 == a.attr("data-isUserful")) {
						var b = a.attr("data-index");
						$(".J_tooltips_like_" + b).removeClass("ui-tooltips");
						window.setTimeout(function() {
							$(".J_tooltips_like_" + b).addClass("ui-tooltips")
						}, 1E3)
					} else {
						if (!$.Cookie.get("VipLID"))
							return l.redirect(),
								VIPSHOP.login.init({
									loginEvent: function() {
										location.reload()
									}
								}),
								!1;
						a = {
							reputationId: a.attr("data-reputationId"),
							el: a
						};
						d.clickUseful(a)
					}
				})
			},
			initPagePlugin: function() {
				var a = $("#J_page_plugin_wrapper"),
					d;
				d = c("J_comment_paginator_tmpl", {
					allTotal: this.commentCount.all
				});
				a.html(d);
				this.initAllCommentPagination(this.totalPageMap.all, this.tabCurrentPage.all)
			},
			initAllCommentPagination: function(a, d) {
				var b = this,
					f = $("#J_detail_paginator");
				f.html("");
				this.paginatorComponent.init(f, {
					totalPages: a,
					currentPage: d,
					sbEvent: "detail",
					onPageChange: function(a) {
						b.tabCurrentPage.all = a
					}
				})
			},
			clearKeyWords: function() {
				this.tabCurrentPage.all = 1;
				this.tabCurrentPage.all = 1;
				this.curSelectedKeyWord = "";
				$(this.UI.commentTagItem).removeClass(this.status.keywordSelected)
			},
			scrollTo: function(a) {
				$("html,body").stop(!1, !0).animate({
					scrollTop: a.offset().top - 33
				}, 300)
			},
			getCommentSumSuccess: function(a) {
				a = this.processSummaryData(a);
				a = c("J_comment_summary_tpl", a);
				$(this.UI.commentSummaryWrapper).html(a);
				this.initPagePlugin()
			},
			loadAvatImgurl: function(a) {
				$(a).find(".lazy").each(function() {
					var a = $(this).data("original");
					a && $(this).attr("src", a)
				})
			},
			getCommentCount: function() {
				var a = this,
					b = {},
					b = d.get({
						spuId: this.spuId,
						brandId: this.brandId,
						timestamp: Date.parse(new Date)
					});
				f({
					url: a.getCountBySpuIdUrl,
					data: b,
					type: "get",
					jsonp: "callback",
					jsonpCallback: "getCommentCountCb",
					dataType: "jsonp",
					timeout: 8E3,
					code: "getCountBySpuIdUrl_ajax_error",
					successCallback: function(d) {
						1 == d.code && d.data ? a.handleCommentCount(d.data) : $(
							".pro-comment-tagcount").addClass("hidden")
					},
					errorCallback: function(a) {
						$(".pro-comment-tagcount").addClass("hidden")
					}
				})
			},
			handleCommentCount: function(a) {
				var d = 0;
				this.totalPageMap.all = Math.ceil(a / this.pageSize);
				this.commentCount.all = a;
				this.commentCache.keyWordPageMax[this.getKeywordSelectedNlp(this
					.curSelectedKeyWord)[0]] = this.totalPageMap.all;
				d = 1E3 <= a ? "999+" : a;
				$(".J-detail-commentCnt-count").html(d)
			},
			getSpuIdNlpData: function() {
				var a = this,
					b = d.get({
						showTagOther: 1,
						spuId: this.spuId
					});
				f({
					url: a.getSpuIdNlpKeyword,
					data: b,
					type: "get",
					dataType: "jsonp",
					jsonpCallback: "getSpuIdNlpKeywordCb",
					timeout: 6E3,
					ajaxTryTimes: 1,
					code: "getSpuIdNlpKeyword_ajax_error",
					successCallback: function(d) {
						a.isSumInfoLoaded = !0;
						1 == d.code && !$.isEmptyObject(d.data) && d.data
							.nlpKeyWordList && d.data.nlpKeyWordList.length ? (a
								.curSelectedKeyWord = d.data.nlpKeyWordList[0]
								.keyWordNlp,
								a.getCommentSumSuccess(d.data)) : (a
								.curSelectedKeyWord = "",
								a.getCommentSumSuccess({}))
					},
					errorCallback: function(d) {
						a.isSumInfoLoaded = !0;
						this.curSelectedKeyWord = "";
						a.getCommentSumSuccess({})
					}
				})
			},
			getKeywordSelectedNlp: function(a) {
				var d = "",
					b = "";
				switch (a) {
					case "-1":
					case "":
					case "\u7cbe\u9009":
					case void 0:
						b = null;
						$("#J_comment_tag_\u7cbe\u9009").addClass(this.status.keywordSelected);
						d = "\u7cbe\u9009";
						break;
					default:
						b = a,
							$("#J_comment_tag_" + a).addClass(this.status.keywordSelected),
							d = a
				}
				return [d, b]
			},
			getCommentData: function(a, b) {
				var f = "",
					c = "",
					n = {},
					e = {};
				selectedNlp = this.getKeywordSelectedNlp(b);
				c = selectedNlp[1];
				f = selectedNlp[0];
				d.get({
					showTagOther: 1,
					spuId: this.spuId
				});
				n = d.get({
					spuId: this.spuId,
					brandId: nsMerchandiseMod.bid,
					page: a,
					pageSize: this.pageSize,
					timestamp: Date.parse(new Date)
				});
				c && (n.keyWordNlp = c);
				f && (this.commentCache.keyWord[f] = {},
					e = this.commentCache.keyWord[f][a]);
				$("#J-FW-prdComment").addClass("J_comment_loading");
				e ? ($("#J-FW-prdComment").removeClass("J_comment_loading"),
					this.renderCommentList(e)) : this.getCommentDataHttp(n, a, f)
			},
			getCommentDataHttp: function(a, d, b) {
				var c = this;
				f({
					url: c.queryBySpuIdUrl,
					data: a,
					type: "get",
					dataType: "jsonp",
					jsonpCallback: "getCommentDataCb",
					code: "getCommentDataCb_ajax_error",
					timeout: 6E3,
					successCallback: function(a) {
						$("#J-FW-prdComment").removeClass("J_comment_loading");
						if (1 == a.code && a.data && (a.data.length || 1 != d)) {
							if (a.data.length < c.pageSize) {
								var f = d,
									n = c.tabCurrentPage.all;
								1 < d && !a.data.length && (f = d - 1);
								n > f && (n = f);
								c.commentCache.keyWordPageMax[b] = f;
								c.initAllCommentPagination(f, n)
							}
							a.data.length && (a = c.processCommentData(a.data),
								c.setCache(a, d, b),
								c.renderCommentList(a))
						} else
							c.showBlankCommentField(b, 1 < d)
					},
					errorCallback: function(a) {
						VIPSHOP.log(a);
						$("#J-FW-prdComment").removeClass("J_comment_loading");
						c.showBlankCommentField(b, 1 < d)
					}
				})
			},
			renderVideoData: function(a, d, b, f) {
				var n = "",
					e = "",
					e = c("J_comment_video_zoomin_tmpl", {
						videoSrc: a,
						bigVideoId: "J_video_comment_source_zoomin_" + d
					}),
					n = c("J_comment_video_tmpl", {
						videoSrc: a,
						videoId: "J_video_comment_source_" + d
					});
				b.html(n);
				f.html(e)
			},
			processSummaryData: function(a) {
				if (a.nlpKeyWordList)
					for (var d = 0, b = a.nlpKeyWordList.length; d < b; d++) {
						var f = a.nlpKeyWordList[d];
						this.commentCache.keyWord[f.keyWordNlp] = {};
						f.isEnableTryReport = f.isEnableTryReport ? "1" : "0";
						f.isCountHidden = 0 >= f.keyWordCount ? "hidden" : ""
					}
				return a
			},
			processCommentData: function(a) {
				for (var d = [], b = {}, f = [], c = {}, n = {}, e = {}, l = {}, g = {}, h = 0, g =
						e = 0, f = "", p = a.length, b = 5, x = 0; h < p; h++) {
					var c = [],
						w = [],
						y = [],
						n = a[h],
						e = n.reputationUser,
						l = n.reputation,
						g = n.reputationProduct,
						n = n.additionalComments ? n.additionalComments : {},
						b = {
							avatarUrl: e.avatarUrl,
							authorName: e.authorName,
							memberLvl: e.memberLvl,
							memberLvlName: this.userLevel[e.memberLvl]
						};
					if (l.impresses)
						for (var f = l.impresses.split("^"), D = 0, H = f.length; D < H; D++)
							c.push(f[D].split(":")[1]);
					f = l.postTime ? VIPSHOP.Time.get(l.postTime, "Y-M-D H:m:S") : "";
					f = f.replace(/\d+/g, function(a) {
						return 10 <= a ? a : "0" + a
					});
					c = {
						content: l.content,
						isIe8: this.isIe8,
						userInfo: b,
						labels: c,
						postAt: f,
						isTryReport: "hidden",
						isTryReportAll: "hidden",
						previewBoxCls: l.imageList ? 1 == l.imageList.length ?
							"z-only-one-item-preview" : "" : "",
						reputationReply: l.reputationReply ? l.reputationReply : "",
						usefulCount: l.usefulCount,
						isUseful: l.isUseful,
						reputationId: l.reputationId
					};
					l.nlpScore ? (b = Math.ceil(l.nlpScore / 10),
						c.starClass = this.scoreConfig[b],
						c.isStarHidden = "") : c.isStarHidden = "hidden";
					e.stature && y.push("\u8eab\u6750\u4fe1\u606f\uff1a" + e.stature);
					g.colorInfo && y.push("\u989c\u8272\uff1a" + g.colorInfo);
					g.size && y.push("\u5c3a\u7801\uff1a" + g.size);
					0 < y.length ? (c.propsList = y,
						c.propsListHidden = "") : c.propsListHidden = "hidden";
					g = l.imageList ? l.imageList.length : 0;
					for (e = 0; e < g && 5 != e; e++)
						w.push({
							imgUrl: l.imageList[e].url,
							index: e,
							isVideo: 0,
							isVideoHidden: "hidden"
						});
					c.videoId = "";
					5 > e && l.hasVideo && (c.videoSrc = l.videoUrl,
						w.unshift({
							imgUrl: l.videoPic,
							index: 0,
							isVideo: 1,
							isVideoHidden: "",
							videoSrc: l.videoUrl,
							videoIndex: x
						}),
						++e,
						++x);
					0 < e && (c.cmtItemStateCls = "z-comment-with-pics");
					"YES" == l.isEssence && (c.nlpName = "featured");
					c.imgList = w;
					n.imageOneClass = "";
					if (n && (n.imageList || n.videoUrl)) {
						l = [];
						w = n.imageList.length;
						n.imageOneClass = 1 == n.imageList.length ? "z-only-one-item-preview" : "";
						for (e = 0; e < w && 5 != e; e++)
							l.push({
								imgUrl: n.imageList[e],
								index: e,
								isVideo: 0,
								isVideoHidden: "hidden"
							});
						n.videoUrl && (l = [],
							l.unshift({
								imgUrl: n.videoPic,
								index: 1,
								isVideo: 1,
								isVideoHidden: "",
								videoSrc: n.videoUrl,
								videoIndex: x
							}),
							++e,
							++x);
						n.imageList = l
					}
					c.additionalComments = n;
					d.push(c)
				}
				return d
			},
			clickUseful: function(a) {
				var d = this,
					b = {
						api_key: "70f71280d5d547b2a7bb370a529aeea1",
						reputationId: a.reputationId
					},
					b = l.replaceApiKey(b),
					b = l.auth(d.commentUseful, b, "mapi.vip.com", "get", 0);
				f({
					url: b.url,
					data: b.param,
					type: "get",
					jsonp: "callback",
					jsonpCallback: "getClickUsefulCb",
					dataType: "jsonp",
					code: "getClickUsefulCb_ajax_error",
					timeout: 8E3,
					successCallback: function(b) {
						if (1 == b.code) {
							var f = $(a.el).attr("data-index");
							$(".J_comment_list_img_" + f).attr("src", d.data
								.repuattionUseful);
							b = (b = parseInt($(".J_comment_like_count_" + f).html())) ?
								b : 0;
							$(".J_comment_like_count_" + f).html(b + 1);
							$(a.el).attr("data-isuserful", 1)
						} else {
							if (11E3 == b.code || 11003 == b.code || 11001 == b.code ||
								11001 == b.code)
								return VIPSHOP.login.init({
										loginEvent: function() {
											location.reload()
										}
									}),
									!1;
							102403 == b.code ? (f = $(a.el).attr("data-index"),
								$(".J_tooltips_like_" + f).removeClass(
									"ui-tooltips"),
								window.setTimeout(function() {
									$(".J_tooltips_like_" + f).addClass(
										"ui-tooltips")
								}, 1E3)) : d.exceptionDialog()
						}
					},
					errorCallback: function(a) {
						d.exceptionDialog()
					}
				})
			},
			renderCommentList: function(a) {
				var d = $(this.UI.commentListWrapper),
					b = "",
					b = c("J_comment_list_tmpl", {
						comment: a
					});
				d.html(b);
				this.subHoverEvent();
				this.loadAvatImgurl(this.UI.commentListWrapper);
				this.replaceErrorImg()
			},
			subHoverEvent: function() {
				var a = this;
				$(a.UI.commentLikeLink).hover(function() {
					var d = $(this).attr("data-index");
					$(".J_comment_list_img_" + d).attr("src", a.data.repuattionUseful)
				}, function() {
					var d = $(this),
						b = d.attr("data-index");
					1 != d.attr("data-isuserful") && $(".J_comment_list_img_" + b).attr(
						"src", a.data.repuattionUsefulNormal)
				})
			},
			replaceErrorImg: function() {
				$(".comment-pic-list img").each(function() {
					var a = $(this);
					a.error(function() {
						a.attr("src",
							"//shop.vipstatic.com/img/detail/icon-error-hash-0be983d2.png"
							)
					})
				})
			},
			setCache: function(a, d, b) {
				this.commentCache.keyWord[b][d] = a
			},
			showBlankCommentField: function(a, d) {
				var b = $("#J_comment_list_wrapper"),
					f;
				f = c("J_no_comment_tmpl", {
					picOnlyTxt: a ? a : ""
				});
				b.html(f);
				d || $("#J_detail_paginator").hide();
				$("#J_comment_pics_paginator").hide()
			},
			exceptionDialog: function() {
				$.Dialog({
					content: "<center>\u545c\u545c\uff0c\u7f51\u7edc\u51fa\u73b0\u4e86\u95ee\u9898\uff0c\u8bf7\u7a0d\u540e\u518d\u8bd5\u8bd5\u5427~</center>",
					model: !0,
					effect: {
						effect: "slide",
						duration: 200
					},
					opacity: 0.6,
					zIndex: 1E3,
					button: [{
						type: "primary",
						text: "\u6211\u77e5\u9053\u4e86",
						size: "medium",
						event: function() {
							this.close()
						}
					}]
				}).open()
			},
			paginatorComponent: {
				defaults: {
					container: "",
					currentPage: 1,
					totalPages: 15,
					sbEvent: "pub",
					onPageChange: $.noop
				},
				init: function(a, d) {
					this.$element = $(a);
					this.setOptions(d);
					this.render();
					this.options.onPageChange(this.options.currentPage);
					this.bindEvent()
				},
				setOptions: function(a) {
					this.options = $.extend({}, this.options || this.defaults, a)
				},
				render: function() {
					var a = this.$element,
						d = this.getPages(),
						b = d.length,
						f = null,
						c = f = null,
						c = 0;
					d.prev && (f = this.buildPageItem("prev", d.prev)) && a.append(f);
					for (; c < b; c++)
						f = "",
						this.options.currentPage == d[c] && (f = "z-current",
							(f = this.buildPageItem("page", d[c], f)) && a.append(f));
					d.next && (c = this.buildPageItem("next", d.next)) && a.append(c);
					d.total && (total = this.buildPageItem("total", d.total)) && a.append(total);
					a.show()
				},
				buildPageItem: function(a, d, b) {
					var f = "",
						c = "";
					switch (a) {
						case "prev":
							f = '<a href="javascript:void(0)" class="vipFont if-arrow-left J_fake_a ' +
								(1 == this.options.currentPage ? "z-disable" : "") +
								'" id="J_prev_paging"> \u4e0a\u4e00\u9875 </a>';
							break;
						case "page":
							f = '<a href="javascript:void(0)" class="J_fake_a ' + (b ? b : "") +
								'">' + d + "</a>";
							break;
						case "next":
							f = '<a href="javascript:void(0)" id="J_next_paging" class="vipFont J_fake_a if-arrow-right ' +
								(this.options.currentPage == this.options.totalPages ? "z-disable" :
									"") + '"> \u4e0b\u4e00\u9875 </a>';
							break;
						case "total":
							c = 1 == this.options.totalPages ? "\u51711\u9875" : this.options
								.currentPage != this.options.totalPages ? "\u7b2c" + this.options
								.currentPage + "\u9875" : "\u6700\u540e1\u9875",
								f = '<span class="total">' + c + "</span>"
					}
					return f
				},
				getPages: function() {
					var a = this.options.currentPage,
						d = [];
					0 < a && (d.prev = 1);
					d.push(a);
					d.next = 1;
					d.total = 1;
					return d
				},
				resetBindEvent: function() {
					this.$element.off("click", "#J_prev_paging:not(.z-disable)");
					this.$element.off("click", "#J_next_paging:not(.z-disable)")
				},
				bindEvent: function() {
					var a = this;
					this.resetBindEvent();
					a.$element.on("click", "#J_prev_paging:not(.z-disable)", function() {
						a.options.currentPage -= 1;
						a.$element.children().remove();
						a.render();
						a.options.onPageChange(a.options.currentPage);
						$.Listeners.pub("VipPaginator." + a.options.sbEvent +
							".currentPage").success({
							cp: a.options.currentPage
						})
					});
					a.$element.on("click", "#J_next_paging:not(.z-disable)", function() {
						a.options.currentPage += 1;
						a.$element.children().remove();
						a.render();
						a.options.onPageChange(a.options.currentPage);
						$.Listeners.pub("VipPaginator." + a.options.sbEvent +
							".currentPage").success({
							cp: a.options.currentPage
						})
					})
				}
			}
		};
		h.exports = g
	}, {
		"../../../../bo/switch/index.js": 6,
		"../../../../plugins/modules/Scroll/LazyDomHelper.js": 88,
		"../../../../plugins/modules/Simulate/FakeA": 91,
		"../../../../plugins/modules/checkLogin/globalLogin.js": 94,
		"../../../../plugins/modules/http/httpV2.js": 96,
		"../../../../plugins/modules/template/index.js": 100,
		"../../../../plugins/urlParam.js": 110,
		"../video/nsPlayVideo.js": 76
	}],
	23: [function(g, h, p) {
		var e = g("../../../../plugins/modules/http/httpV2.js"),
			c = g("../../../../plugins/urlParam.js"),
			b = g("../../../../plugins/modules/checkLogin/globalLogin.js");
		h.exports = {
			browseHistoryUrl: "//mapi.vip.com/vips-mobile/rest/fav/browse/history/list/rank/v1_for_pc",
			footprintUrl: "//mapi.vip.com/vips-mobile/rest/shopping/pc/product/module/list/v2",
			context: "",
			init: function() {
				var a = this;
				new(g("../../../../plugins/modules/Scroll/LazyDomHelper"))({
					$dom: $("#J-footprint-mod"),
					loadingFn: function(b) {
						b.loading = !0;
						!$.Cookie.get("VipLID") || window.abtest && "C1" == window.abtest
							.state() || (a.addFootprintDom(),
								a.getBrowseHistory())
					}
				})
			},
			addFootprintDom: function() {
				var a = $("#J-footprint-wrap-tmp").html();
				$("#J-footprint-mod").html(a)
			},
			getBrowseHistory: function() {
				var a = this,
					f = c.get({
						net: "WIFI"
					}),
					f = b.replaceApiKey(f),
					f = b.auth(a.browseHistoryUrl, f, "mapi.vip.com", "get", 0);
				e({
					url: f.url,
					data: f.param,
					cache: !1,
					dataType: "jsonp",
					jsonpCallback: "getBrowseHistoryData",
					successCallback: function(d) {
						if (d.data && 1 == d.code)
							if (d = d.data.products || [],
								0 === d.length)
								$("#J-footprint-mod").addClass("hidden");
							else {
								for (var b = "", f = 0; f < d.length; f++)
									b += d[f].pid + ",";
								a.getFootprintData(b)
							}
						else
							$("#J-footprint-mod").addClass("hidden")
					},
					errorCallback: function() {
						$("#J-footprint-mod").addClass("hidden")
					}
				})
			},
			getFootprintData: function(a) {
				var f = this;
				a = c.get({
					productIds: a,
					scene: "history",
					standby_id: "nature",
					extParams: $.stringifyJSON({
						preheatTipsVer: "3",
						couponVer: "v2",
						exclusivePrice: "1",
						iconSpec: "2x"
					}),
					context: f.context || ""
				});
				a = b.replaceApiKey(a);
				a = b.auth(f.footprintUrl, a, "mapi.vip.com", "get", 0);
				e({
					url: a.url,
					data: a.param,
					cache: !1,
					dataType: "jsonp",
					jsonpCallback: "getFootprintData",
					successCallback: function(a) {
						if (a.data && 1 == a.code) {
							$.Listeners.pub("getRecommend.footer.success").success(a
								.data);
							var b = a.data.products;
							!b || $.isEmptyObject(b) || 5 > b.length || 1300 < document
								.body.clientWidth ? $("#J-footprint-mod").addClass(
									"hidden") : (b = f.renderData(b),
									$("#J-footprint-slide").Template({
										templateElement: $("#J-footprint-item-tmp"),
										replace: !0
									}).Template("process", b),
									f.getFootprintDataCB(a.data),
									f.bindEvent())
						} else
							$("#J-footprint-mod").addClass("hidden")
					},
					errorCallback: function() {
						$("#J-footprint-mod").addClass("hidden")
					}
				})
			},
			bindEvent: function() {
				$("#J-footprint-mod").removeClass("hidden");
				$("#J-footprint-mod").Switchable({
					panelCls: $("#J-footprint-slide"),
					triggerCls: $("#footprint-trigger"),
					pervCls: $("#J-footprint-trigger-left"),
					nextCls: $("#J-footprint-trigger-right"),
					effect: "slideX",
					setChildWidth: 164,
					setChildHeight: 289,
					visiNum: 5,
					viewNum: 5,
					firstCls: "icon-btn-disable",
					lastCls: "icon-btn-disable"
				})
			},
			getFootprintDataCB: function(a) {
				5 == a.products.length && ($("#J-footprint-more").addClass("hidden"),
					$("#J-footprint-trigger").addClass("hidden"))
			},
			renderData: function(a) {
				for (var b = 0, d = a.length, c, e = []; b < d; b++) {
					c = a[b];
					priceInfo = c.price;
					c.status = "";
					c.stock && ("2" == c.stock && (c.status = "is-havechance"),
						"1" == c.stock && (c.status = "is-soldout"));
					1 == c.flags && (c.status = "is-warmup");
					"3" == c.stock && (c.status = "is-outofshelf");
					var k = "//detail.vip.com/detail-" + c.brandId + "-" + c.productId + ".html";
					window.openhk && 1 == window.openhk && c.flags && 1 == (c.flags & 1024) >> 10 &&
						(k = "//www.vipglobal.hk/detail-" + c.brandId + "-" + c.productId +
						".html");
					e[e.length] = {
						img: c.smallImage,
						url: k,
						name: c.brandShowName + " " + c.title,
						market_price: priceInfo.marketPrice ? priceInfo.marketPrice : priceInfo
							.salePrice,
						price: priceInfo.salePrice,
						status: c.status
					}
				}
				return {
					productHist: e
				}
			}
		}
	}, {
		"../../../../plugins/modules/Scroll/LazyDomHelper": 88,
		"../../../../plugins/modules/checkLogin/globalLogin.js": 94,
		"../../../../plugins/modules/http/httpV2.js": 96,
		"../../../../plugins/urlParam.js": 110
	}],
	24: [function(g, h, p) {
		var e = g("../../../../plugins/modules/http/http");
		h.exports = {
			getLoanInfoApi: "//detail.vip.com/detail-ajax.php",
			open: 1,
			loanInfo: {},
			curPrice: 0,
			minPrice: nsMerchandiseMod.sellPrice,
			isAccuratePrice: !1,
			isNotQualified4Loan: !1,
			isLoanInited: !0,
			selectedLoanPeriod: 0,
			isLoanLoading: !1,
			init: function() {
				if (!this.open || nsMerchandiseMod.isPrePay)
					return !1;
				this.bindEvents();
				this.bindCustomEvents()
			},
			data: {
				sumData: {}
			},
			event: {
				sub: {
					merchandiseInfoSuccess: "merchandiseInfo.Success"
				}
			},
			bindEvents: function() {
				var c = this;
				$(document).on("click", ".J_loan_installment_item", function(b) {
					b.preventDefault();
					if ($(".J_loan_installment_list").hasClass("z-loanUse-item-disable"))
						return !1;
					if (-1 == nsMerchandiseMod.selectedSize)
						return $(".J-sizeArea-wrap").addClass("status-notice"),
							!1;
					$(".J_loan_installment_item").removeClass("z-loanUse-item-seleted");
					$(this).addClass("z-loanUse-item-seleted");
					c.selectedLoanPeriod = $(this).data("period");
					$("#J_stage_loan_btn").removeClass("hidden")
				})
			},
			bindCustomEvents: function() {
				var c = this;
				$.Listeners.sub(c.event.sub.merchandiseInfoSuccess).onsuccess(function(b) {
					c.data.sumData = b;
					$.Listeners.sub("change.buy.num.success").onsuccess(function() {
						c.getInstallmentInfo()
					});
					2 == nsMerchandiseMod.brandStatus && c.getInstallmentInfo()
				})
			},
			getInstallmentInfo: function() {
				var c = this;
				0 != nsMerchandiseMod.sellPrice ? (c.isAccuratePrice = !0,
					c.curPrice = nsMerchandiseMod.sellPrice) : (c.isAccuratePrice = !1,
					c.curPrice = c.minPrice);
				var b = {
					act: "getLoanInfo",
					m_id: nsMerchandiseMod.productId,
					cate_id: nsMerchandiseMod.categoryId,
					price: c.curPrice,
					num: nsMerchandiseMod.num,
					freight: 0,
					label: c.data.sumData.store && c.data.sumData.store.storeId
				};
				c.isNotQualified4Loan || c.isLoanLoading || (c.isLoanLoading = !0,
					e({
						url: c.getLoanInfoApi,
						data: b,
						type: "GET",
						dataType: "jsonp",
						jsonpCallback: "getLoanInfoCb",
						isCache: !0,
						cacheKeys: ["price", "num", "freight"],
						cacheObj: c.loanInfo,
						successCallback: function(a) {
							c.isLoanLoading = !1;
							c.getInstallmentInfoCB(a)
						},
						errorCallback: function(a) {
							c.isLoanLoading = !1;
							VIPSHOP.log(a)
						}
					}))
			},
			getInstallmentInfoCB: function(c) {
				if (void 0 == c.data.period_info)
					return !1;
				var b = c.data.period_info.length,
					a = this.data.sumData.product ? this.data.sumData.product.detailStatus : "";
				200 == c.code && ($(".J-i-loan").removeClass("hidden"),
					1 == c.data.open_status && c.data.can_pay && 0 < b && 2 != a ? (this
						.renderLoanInfo(c.data, !1),
						$(".J_loan_installment_item").hasClass("z-loanUse-item-seleted") || $(
							"#J_stage_loan_btn").addClass("hidden"),
						$.Listeners.pub("set.loan.btn.availabled").success()) : 1 == c.data
					.open_status || c.data.can_pay ? 1 == c.data.open_status && c.data
					.can_pay && 0 >= b && 2 != a ? (this.isNotQualified4Loan = !0,
						this.showLoanTips(c.data.pay_desc)) : 1 != c.data.open_status || c.data
					.can_pay || 2 == a ? 0 == c.data.open_status && c.data.can_pay ? 0 < b ? (
						this.renderLoanInfo(c.data, !1),
						$(".J_loan_installment_item").hasClass("z-loanUse-item-seleted") || $(
							"#J_stage_loan_btn").addClass("hidden"),
						$.Listeners.pub("set.loan.btn.availabled").success()) : c.data
					.pay_desc ? this.showLoanTips(c.data.pay_desc) : $(".J-i-loan").addClass(
						"hidden") : 1 == c.data.open_status && c.data.can_pay && 2 == a && this
					.showLoanTips(c.data.pay_desc) : this.isLoanInited ? (this
						.isNotQualified4Loan = !0,
						this.showLoanTips(c.data.pay_desc)) : (this.renderLoanInfo(c.data, !0),
						$.Listeners.pub("set.loan.btn.disabled").success()) : (this
						.showLoanTips(c.data.pay_desc),
						$(".J_loan_open_txt").removeClass("hidden")),
					this.isLoanInited = !1)
			},
			showLoanTips: function(c) {
				"" != c ? ($(".J_loan_installment_tips").html(c),
					$("#J_loan_unopened_box").removeClass("hidden")) : $(".J-i-loan").addClass(
					"hidden")
			},
			renderLoanInfo: function(c, b) {
				var a = [],
					f = c.period_info,
					d = f.length,
					n = "",
					e = "";
				if (!nsSizeStockMod.canBuy)
					return $(".J-i-loan").addClass("hidden"),
						!1;
				for (var n = this.data.sumData.product.salePriceTips ? this.data.sumData.product
						.salePriceTips : "", k = 0; k < d; k++)
					f[k].period_fee *= 1,
					e = 0 == f[k].period_fee ? "\u514d\u624b\u7eed\u8d39" :
					"\u542b\u624b\u7eed\u8d39\uff1a&yen;" + f[k].period_fee + n + "/\u671f",
					a.push({
						loan_info: "&yen;" + f[k].period_amount + n + "x" + f[k].period_num +
							"\u671f",
						loan_fee: e,
						period: f[k].period_num
					});
				b ? $(".J_loan_installment_list").addClass("z-loanUse-item-disable") : $(
					".J_loan_installment_list").hasClass("z-loanUse-item-disable") && $(
					".J_loan_installment_list").removeClass("z-loanUse-item-disable");
				$("#J_loan_installment_options").Template({
					templateElement: $("#J_loan_installment_tmpl"),
					replace: !0
				}).Template("process", {
					loan_item: a
				});
				"" != c.pay_desc ? $(".J_loan_installment_tips").html(c.pay_desc) : $(
					".J_loan_installment_tips_wrapper").addClass("hidden");
				$(".J_loan_installment_list").removeClass("hidden");
				this.selectedLoanPeriod && $(".J_loan_installment_item[data-period=" + this
					.selectedLoanPeriod + "]").addClass("z-loanUse-item-seleted")
			}
		}
	}, {
		"../../../../plugins/modules/http/http": 95
	}],
	25: [function(g, h, p) {
		var e = g("./productInfo/model/nsReserveMod"),
			c = {
				mid: "",
				bid: "",
				bsn: "",
				bname: "",
				brandStatus: "",
				saleStartTime: "",
				saleEndTime: "",
				curSizeCount: "",
				numToUseSelector: 12,
				isUseSizeSelector: !1,
				isUseColorSelector: !1,
				selectorOptionHtml: "",
				isSecKill: "",
				addFlashFlag: !1,
				isSaleout: !1,
				hasChanceSize: !1,
				chanceSizeCount: 0,
				stockStatus: -1,
				is360Show: "",
				productId: "",
				spuId: "",
				categoryId: "",
				selectedSize: -1,
				num: 0,
				selectedSizeStock: 0,
				less_stock: !1,
				less_stock_tips: {
					0: "\u4ec5\u5269<span>10</span>\u4ef6\uff0c\u6293\u7d27\u65f6\u95f4\u62a2\u8d2d\u54e6\uff01",
					1: "\u5e93\u5b58\u7d27\u5f20\uff0c\u5c3d\u5feb\u62a2\u8d2d\uff01"
				},
				sizeType: "",
				is_device: "",
				sale_style_global: "",
				buyMode: "",
				isIndependent: "",
				isPrePay: "",
				pcSizeData: "",
				sellPrice: "",
				marketPrice: "",
				event: {
					sub: {
						getSkuListSuccess: "getProductInfo.detail.success",
						getDetailInfoSuccess: "getDetailInfo.detail.success",
						getBrandInfoSuccess: "getBrandInfo.detail.success",
						getInfoAndSkuSuccess: "getInfoAndSkuSuccess.detail.success",
						stockStatus: "stock_status",
						reserverSuccess: "reserver.success",
						sizeInitFinish: "sizeInitFinish.finish",
						initInfoPicFinish: "initInfoPicFinish.detail"
					},
					pub: {
						merchandiseInfoSuccess: "merchandiseInfo.Success"
					}
				},
				init: function() {
					var b = this;
					$.Listeners.sub(b.event.sub.getDetailInfoSuccess).onsuccess(function(a) {
						b.buyMode = a.product.buyMode;
						$.Listeners.sub(b.event.sub.getInfoAndSkuSuccess).onsuccess(function(
						a) {
							a.pcSkuData.product_price_range_mapping[a.product
								.productIdStr] && (b.isPrePay = a.pcSkuData
								.product_price_range_mapping[a.product.productIdStr]
								.prepay,
								b.buyMode = a.pcSkuData.product_price_range_mapping[
									a.product.productIdStr].buyMode)
						});
						b.brandStatus = a.product.detailStatus;
						1 == b.brandStatus && (window.location.href =
							"https://err.vip.com/noProduct.html?merNotExist=1");
						b.mid = a.product.productIdStr;
						b.bid = a.product.brandIdStr;
						b.bsn = a.product.brandStoreSn;
						b.bname = a.product.brandStoreName;
						b.categoryId = a.product.categoryId;
						b.productId = b.mid;
						b.spuId = a.product.spuId;
						b.is_device = a.product.is_device;
						b.sale_style_global = a.product.isHaiTao;
						$.Listeners.sub(b.event.sub.initInfoPicFinish).onsuccess(function() {
							b.processInit(a)
						});
						b.isIndependent = a.product.isIndependent;
						b.sellPrice = a.product.min_vipshop_price;
						b.marketPrice = a.product.minMarketPriceOfMinSkuVipshopPrice;
						nsReco.init();
						$.Listeners.pub(b.event.pub.merchandiseInfoSuccess).success(a)
					});
					$.Listeners.sub(b.event.sub.sizeInitFinish).onsuccess(function(a) {
						b.pcSizeData = a.pcSizeData;
						12 < a.pcSizeData.sizeCount && (b.isUseSizeSelector = !0)
					})
				},
				processInit: function(b) {
					0 !== this.brandStatus && 2 !== this.brandStatus && this.setStatus_saleOut();
					this.is360Show && this.showImg360();
					VIPSHOP.Member.parseCookie();
					b = $("#J-safeguard-icon");
					$.Listeners.sub("pms.type.return").onsuccess(function() {
						$(".J_freight_free").attr("href", "//help.vip.com/returncommitment.php")
					});
					b.length && b.append($("#J-safeguard-olduser-template").html())
				},
				setStatus_saleOut: function() {
					var b = this;
					b.isSaleout = !0;
					b.selectedSize = -1;
					b.num = 0;
					nsProNumMod.setStatus_disabled();
					$.Listeners.sub(b.event.sub.sizeInitFinish).onsuccess(function(a) {
						$(".J-sizeID").each(function() {
							var a = $(b),
								d = a.data("id");
							e.belongToReserve(d) || a.addClass("sli-disabled")
						})
					});
					$("#J_detail_buy,#J-button-box, #J-proStock-type, #J-num-select,#J-vip-point")
					.hide(); -
					1 == c.stockStatus && $(".J-sizeArea-wrap:eq(0)").hide();
					3 == b.brandStatus && b.setStatus_soldunshelve()
				},
				setStatus_soldunshelve: function() {
					$("#J_detail_buy, #J_detail_size").hide();
					$("#J-mer-saleTag").addClass("soldunshelve-tag").removeClass(
						"soldout-tag soldchance-tag").show()
				},
				showImg360: function() {
					var b = this,
						a = $("#J-imgFlash-wrap");
					0 != a.length && (a.removeClass("hidden"),
						$("#J-imgFlash-open").on("click", function() {
							$(this).addClass("hidden");
							$("#J-imgFlash-close").show();
							$("#J-imgFlash-wrap").addClass("M-allImg-open");
							if (!b.addFlashFlag) {
								VIPTE.DETAIL.flash_url =
									"detail.vip.com/detail-ajax.php?act=getRotationImgs&merchandiseId=" +
									c.mid;
								var a = $.Deferred(),
									d = function() {
										"object" == typeof swfobject ? a.resolve() : setTimeout(
											d, 50);
										return a
									};
								$.when(d()).done(function() {
									$("#J-imgFlash-wrap").removeClass("hidden");
									window.FlashGetURL = function() {
										return VIPTE.DETAIL.flash_url
									};
									swfobject.embedSWF(VIPSHOP.frontHost +
										"/vipstatic/detail_imgs.swf",
										"J-imgFlash-box", "420", "531", "9.0.0",
										"expressInstall.swf", {}, {
											wmode: "transparent"
										})
								});
								b.addFlashFlag = !0
							}
						}),
						$("#J-imgFlash-close").on("click", function() {
							$(this).hide();
							$("#J-imgFlash-open").removeClass("hidden");
							$("#J-imgFlash-wrap").removeClass("M-allImg-open")
						}))
				},
				updateStock: function() {
					var b = nsSizeStockMod.stockData[this.selectedSize];
					b.stock -= this.num;
					this.selectedSizeStock = b.stock;
					b.stock < this.num && (0 > b.stock && (b.stock = 0),
						$(".J-pro-num-txt").html(b.stock),
						$("#J-num-input").val(b.stock),
						this.num = b.stock);
					if (0 >= this.selectedSizeStock) {
						this.hasChanceSize = !0;
						this.chanceSizeCount++;
						b.type = 2;
						nsProNumMod.setStatus_disabled();
						$("#J-proStock-type, #J-topbarProStock-type").hide();
						if (this.isUseSizeSelector) {
							var b = $(".selector-opt[data-val=" + this.selectedSize + "]"),
								a = b.text(),
								f = $(".selector-txt");
							b.add(f).html(a + " - \u6709\u673a\u4f1a")
						} else
							$("#J-cartAdd-sizeID-" + this.selectedSize).removeClass("sli-selected")
							.addClass("sli-have-chance");
						this.curSizeCount == this.chanceSizeCount && $(
							"#J-button-box, #J-num-select,#J-vip-point").hide()
					} else
						$("#J-proStock-type").find("span").html(this.selectedSizeStock)
				}
			};
		h.exports = c
	}, {
		"./productInfo/model/nsReserveMod": 37
	}],
	26: [function(g, h, p) {
		g("Record");
		h.exports = {
			relateLoaded: !1,
			hkmctwCookie: {
				104107: 1,
				104108: 1,
				104109: 1
			},
			initCal: null,
			saleOutCal: null,
			UI: {
				goodsConsultContainer: "#J-FW-question"
			},
			init: function(e) {
				var c = this;
				c.initCal && c.initCal();
				if (1 == nsMerchandiseMod.sale_style_global)
					$("#J-global-tips").on("mouseenter", function() {
						$(this).addClass("z-ui-tooltips-in")
					}).on("mouseleave", function() {
						$(this).removeClass("z-ui-tooltips-in")
					});
				var b = null;
				$("#J_wrap_relate .toc").on("mouseenter", function() {
					clearTimeout(b);
					b = setTimeout(function() {
						$.Listeners.pub("sidebar_limit").success()
					}, 500)
				});
				var a = O_share.url + "?m_uid=" + $.Cookie.get("VipRUID") + "&m_mid=" + $.Cookie
					.get("mars_cid");
				$(".share_tx").on("click", function() {
					O_share.url = a + "&m_sn=m_shopdetail_share_qqweibo_link";
					share_sns("tqq", O_share)
				});
				$(".share_rr").on("click", function() {
					O_share.url = a + "&m_sn=m_shopdetail_share_renren_link";
					share_sns("renren", O_share)
				});
				$(".share_kx").on("click", function() {
					O_share.url = a + "&m_sn=m_shopdetail_share_kaixin001_link";
					share_sns("kaixin001", O_share)
				});
				$(".share_db").on("click", function() {
					O_share.url = a + "m_sn=m_shopdetail_share_douban_link";
					share_sns("douban", O_share)
				});
				$(".share_kj").on("click", function() {
					O_share.url = a + "&m_sn=m_shopdetail_share_qzone_link";
					share_sns("qzone", O_share)
				});
				c.recordView();
				$.Listeners.sub("ready.third").onsuccess(function() {
					c.reco()
				})
			},
			reco: function() {
				this.saleOutCal && this.saleOutCal()
			},
			recordView: function() {
				VIPSHOP.Detect.isIE6 || (1 != $.Storage.get("update_for_new_storage") && ($.Storage
						.remove("vipte_viewed"),
						$.Storage.set("update_for_new_storage", 1)),
					S_warehouse.toLowerCase())
			}
		}
	}, {
		Record: 12
	}],
	27: [function(g, h, p) {
		var e = g("../../../../plugins/modules/template/index.js"),
			c = g("../../../../shop/modules/coupon/couponNewMod.js"),
			b = g("../../../../shop/pmsNavShowMod.js");
		h.exports = {
			lsCoupon: "",
			init: function() {
				b.init();
				var a = this;
				$.Loader.pagelet({
					name: "couponCommon",
					html: "//shop.vipstatic.com/html/public/shop/leftSideCom-hash-3ebdc8ee.js?" +
						VIPSHOP.jsVer,
					css: [
						"//shop.vipstatic.com/css/public/shop/leftSideCom-hash-214af6c8.css"],
					js: function() {},
					callback: function(a) {
						$("body").append(a);
						$.Listeners.pub("leftSide.get.tpls").success()
					}
				});
				$.Listeners.sub("leftSide.get.tpls").onsuccess(function() {
					$.Listeners.sub("getDetailInfo.detail.success").onsuccess(function(b) {
						a.lsCoupon = b.product;
						a.renderDom();
						a.renderPMS();
						a.renderData()
					})
				})
			},
			renderDom: function(a) {
				a = $("#J-list-sider-pms-wrap");
				var b = this.lsCoupon,
					b = b.brandStoreLogo ? b.brandStoreLogo :
					"//shop.vipstatic.com/img/list/brand_logo_loading-hash-57c3de99.png";
				0 == a.length && (a = $.Template({
						templateElement: $("#J-leftSidebar-pmsCoupon"),
						replace: null
					}).process({
						logo: b,
						mars_sead: ""
					}),
					$("body").append(a).show());
				0 < $("#J-list-sider-pms-wrap").length && $("#J-sider-coupons-wrap").Template({
					templateElement: $("#J-leftSidebar-coupon"),
					replace: !0
				}).Template("process", {
					mars_sead: ""
				})
			},
			renderData: function() {
				var a = this.lsCoupon;
				c.init({
					bids: a.brandId ? a.brandId : "",
					marsPf: "detail_goods",
					mid: a.productIdStr ? a.productIdStr : "",
					isWarmUp: 2 == a.detailStatus ? 1 : 0
				})
			},
			renderPMS: function() {
				var a = this.lsCoupon;
				if (a = a.pmsInfo ? a.pmsInfo : "")
					$("#J-pms-sider-wrap").html(e("J-leftSidebar-promotionInfo", {
						pmsInfo: a
					})).removeClass("hidden"),
					$("div.J-list-sider-pms-wrap").removeClass("hidden"),
					$("#J-list-sider-pms-wrap img.lazy").antiHijackingImage({
						pre_class: "lazy"
					});
				$.Listeners.pub("leftSide.already.render").success()
			}
		}
	}, {
		"../../../../plugins/modules/template/index.js": 100,
		"../../../../shop/modules/coupon/couponNewMod.js": 115,
		"../../../../shop/pmsNavShowMod.js": 120
	}],
	28: [function(g, h, p) {
		var e = g("./model/skuList.js"),
			c = g("./model/detailV5.js"),
			b = g("./model/brandInfo.js"),
			a = g("./model/documentContent"),
			f = g("./model/buyButtonPrice");
		g = {
			data: {
				productId: "",
				prepay: 0,
				productInfo: {}
			},
			event: {
				sub: {
					getSkuListSuccess: "getProductInfo.detail.success",
					getSkuListFailed: "getProductInfo.detail.fail",
					getDetailInfoSuccess: "getDetailInfo.detail.success",
					getDetailInfoFailed: "getDetailInfo.detail.failed",
					getBrandInfoSuccess: "getBrandInfo.detail.success",
					getInfoAndSkuSuccess: "getInfoAndSkuSuccess.detail.success",
					changeBuyNum: "change.buy.num.success",
					chooseSize: "choose.size.success",
					getBrandInfoFailed: "getBrandInfo.detail.failed"
				},
				pub: {
					getInfoAndSkuSuccess: "getInfoAndSkuSuccess.detail.success",
					initPrepayPrice: "initPrepayPrice.detail",
					initRenderBtn: "initRenderBtn.detail",
					toRenderFreight: "toRenderFreight.detail",
					toChangePrepayForBuyNum: "toChangePrepayPrice.detail",
					toRenderPrepayPrice: "toRenderPrepayPrice.detail",
					initRenderPrice: "initRenderPrice.detail",
					sizeRenderPrice: "sizeRenderPrice.detail",
					initSeo: "initSeo.detail",
					initFly: "initFly.detail",
					initCrumbs: "initCrumbs.detail",
					initInfoPic: "initInfoPic.detail",
					initMerchandiseSn: "initMerchandiseSn.detail",
					initShare: "initShare.detail",
					initInfoMation: "initInfoMation.detail",
					initCustomerService: "initCustomerService.detail",
					oxoMode: "oxoMode.detail",
					deliver: "deliver.detail",
					initServices: "initServices.detail",
					renderConsumerTips: "render.consumerTips",
					mpDelay: "mp.delay",
					detailV5: "detailV5",
					preSale: "preSale.detail",
					buyLimit: "buyLimit.num",
					expiryTips: "render.expiryTips",
					colorDetail: "colorDetail.detail",
					sizeDetail: "sizeDetail.detail",
					detailTab: "detailTable.detail"
				}
			},
			view: {
				seo: g("./view/seo"),
				fly: g("./view/fly"),
				crumbs: g("./view/crumbs"),
				infoPic: g("./view/infoPic"),
				merchandiseSn: g("./view/merchandiseSn"),
				share: g("./view/share"),
				infoMation: g("./view/infoMation"),
				customerService: g("./view/customerService"),
				oxoMode: g("./view/oxoMode"),
				deliver: g("./view/deliver"),
				carriageTips: g("./view/carriageTips"),
				prepayInfo: g("./view/prepayPrice"),
				addCartBtn: g("./view/addCartBtn"),
				priceInfo: g("./view/priceInfo"),
				consumerTips: g("./view/consumerTips"),
				supportServices: g("./view/supportServices"),
				colorDetail: g("./view/colorDetail"),
				sizeDetail: g("./view/sizeDetail"),
				detailTab: g("./view/detailTab"),
				vendorQa: g("./model/vendorQa"),
				mpDelay: g("./view/mpDelay")
			},
			init: function(d) {
				a.init();
				e.init();
				c.init();
				b.init();
				this.initPlugins(d);
				this.bindEventListeners()
			},
			initPlugins: function(a) {
				for (var b in this.view)
					this.view[b].init()
			},
			bindEventListeners: function() {
				var a = this;
				$.Listeners.sub(a.event.sub.getBrandInfoSuccess).onsuccess(function(b) {
					$.Listeners.sub(a.event.sub.getSkuListSuccess).onsuccess(function(c) {
						b.pcSkuData = c;
						$.Listeners.pub(a.event.pub.initInfoPic).success(b);
						$.Listeners.pub(a.event.pub.getInfoAndSkuSuccess).success(
						b);
						$.Listeners.pub(a.event.pub.mpDelay).success(b);
						nsFavProMod.init();
						f.init()
					});
					$.Listeners.sub(a.event.sub.getSkuListFailed).onsuccess(function(f) {
						b.pcSkuData = f;
						$.Listeners.pub(a.event.pub.initInfoPic).success(b)
					});
					$.Listeners.pub(a.event.pub.initSeo).success(b);
					$.Listeners.pub(a.event.pub.initFly).success(b);
					$.Listeners.pub(a.event.pub.initCrumbs).success(b);
					$.Listeners.pub(a.event.pub.initMerchandiseSn).success(b);
					$.Listeners.pub(a.event.pub.initShare).success(b);
					$.Listeners.pub(a.event.pub.initInfoMation).success(b);
					$.Listeners.pub(a.event.pub.initCustomerService).success(b);
					$.Listeners.pub(a.event.pub.initServices).success(b);
					$.Listeners.pub(a.event.pub.renderConsumerTips).success(b);
					$.Listeners.pub(a.event.pub.oxoMode).success(b);
					$.Listeners.pub(a.event.pub.deliver).success(b);
					$.Listeners.pub(a.event.pub.detailV5).success(b);
					$.Listeners.pub(a.event.pub.preSale).success(b)
				});
				$.Listeners.sub(this.event.sub.getInfoAndSkuSuccess).onsuccess(function(b) {
					console.log(b);
					var f = b.pcSkuData;
					a.initVar(f);
					a.redirectGlobal(b);
					var c = f.product_price_range_mapping[a.data.productId];
					a.data.prepay = c && c.prepay;
					a.data.productInfo = f;
					a.toRenderPrice();
					$.Listeners.pub(a.event.pub.toRenderFreight).success(f);
					$.Listeners.pub(a.event.pub.colorDetail).success(b);
					$.Listeners.pub(a.event.pub.sizeDetail).success(b);
					$.Listeners.pub(a.event.pub.initRenderBtn).success(f);
					$.Listeners.pub(a.event.pub.detailTab).success(f);
					$.Listeners.pub(a.event.pub.initRenderPrice).success(f);
					$.Listeners.pub(a.event.pub.expiryTips).success(f);
					c && $.Listeners.pub(a.event.pub.buyLimit).success({
						buyLimitMax: f.product_price_range_mapping[a.data.productId]
							.buyLimitMax,
						buyLimitMin: f.product_price_range_mapping[a.data.productId]
							.buyLimitMin
					});
					$.Listeners.sub(a.event.sub.chooseSize).onsuccess(function(b) {
						a.data.prepay && (b = a.getSelectedSizeInfo(nsMerchandiseMod
								.selectedSize).prepay_price_idx,
							$.Listeners.pub(a.event.pub.toRenderPrepayPrice)
							.success({
								prepayId: b,
								isPrepayPriceSuff: 0
							}),
							$.Listeners.pub(a.event.pub.toChangePrepayForBuyNum)
							.success({
								prepayId: b,
								num: nsSizeStockMod.stockData[
									nsMerchandiseMod.selectedSize].min
							}))
					})
				});
				$.Listeners.sub(this.event.sub.changeBuyNum).onsuccess(function(b) {
					a.data.buyNum = b.num;
					1 == a.data.prepay && a.toChangePrepayForBuyNum(b)
				});
				$.Listeners.sub(this.event.sub.chooseSize + "," + this.event.pub.initRenderPrice)
					.onsuccess(function() {
						$.Listeners.pub(a.event.pub.sizeRenderPrice).success()
					});
				$.Listeners.sub(this.event.sub.getDetailInfoFailed).onsuccess(function() {
					window.location.href =
						"https://err.vip.com/noProduct.html?merNotExist=1"
				});
				$.Listeners.sub(this.event.sub.getBrandInfoFailed).onsuccess(function() {
					window.location.href =
						"https://err.vip.com/noProduct.html?merNotExist=1"
				})
			},
			toRenderPrice: function() {
				if (this.data.prepay) {
					var a = -1 != nsMerchandiseMod.selectedSize ? this.getSelectedSizeInfo(
							nsMerchandiseMod.selectedSize).prepay_price_idx : this.data.productInfo
						.product_price_range_mapping[this.data.productId].prepay_price_idx;
					$.Listeners.pub(this.event.pub.initPrepayPrice).success({
						data: this.data.productInfo,
						prepayId: a,
						num: this.data.buyNum,
						isPrepayPriceSuff: -1 != nsMerchandiseMod.selectedSize ? 0 : 1
					})
				}
			},
			toChangePrepayForBuyNum: function(a) {
				var b = this.getSelectedSizeInfo(nsMerchandiseMod.selectedSize).prepay_price_idx;
				$.Listeners.pub(this.event.pub.toChangePrepayForBuyNum).success({
					prepayId: b,
					num: a.num
				})
			},
			getSelectedSizeInfo: function(a) {
				var b = this.data.productInfo.skus,
					f = {},
					c;
				for (c in b)
					if (b[c].msizeId == a) {
						f = b[c];
						break
					}
				return f
			},
			initVar: function(a) {
				this.data.productId = window.url.m_id
			},
			redirectGlobal: function(a) {
				if (a.pcSkuData && a.pcSkuData.product_price_range_mapping && a.pcSkuData
					.product_price_range_mapping[this.data.productId]) {
					var b = a.pcSkuData.product_price_range_mapping[this.data.productId];
					a = a.product && a.product.brandIdStr ? a.product.brandIdStr : 1;
					b.isHaiTao && window.openhk && "www.vipglobal.hk" != window.location.host ?
						location.href = "//www.vipglobal.hk/detail-" + a + "-" + this.data
						.productId + ".html" : b.isHaiTao || "www.vipglobal.hk" != window.location
						.host || (location.href = "//err.vip.com/noProduct.html?merNotExist=1")
				}
			}
		};
		h.exports = g
	}, {
		"./model/brandInfo.js": 29,
		"./model/buyButtonPrice": 30,
		"./model/detailV5.js": 31,
		"./model/documentContent": 32,
		"./model/skuList.js": 38,
		"./model/vendorQa": 39,
		"./view/addCartBtn": 43,
		"./view/carriageTips": 44,
		"./view/colorDetail": 45,
		"./view/consumerTips": 46,
		"./view/crumbs": 47,
		"./view/customerService": 48,
		"./view/deliver": 49,
		"./view/detailTab": 50,
		"./view/fly": 51,
		"./view/infoMation": 52,
		"./view/infoPic": 53,
		"./view/merchandiseSn": 54,
		"./view/mpDelay": 55,
		"./view/oxoMode": 56,
		"./view/prepayPrice": 57,
		"./view/priceInfo": 58,
		"./view/seo": 59,
		"./view/share": 60,
		"./view/sizeDetail": 61,
		"./view/supportServices": 62
	}],
	29: [function(g, h, p) {
		var e = g("../../../../../plugins/modules/http/httpV2.js"),
			c = g("urlParam");
		g = {
			url: {
				getBrandInfoApi: "//mapi.vip.com/vips-mobile/rest/shopping/pc/brand/detail/batch/v1"
			},
			data: {
				mars_cid: $.Cookie.get("mars_cid")
			},
			event: {
				sub: {
					getSkuListSuccess: "getProductInfo.detail.success",
					getDetailInfoSuccess: "getDetailInfo.detail.success"
				},
				pub: {
					getBrandInfoSuccess: "getBrandInfo.detail.success",
					getBrandInfoFailed: "getBrandInfo.detail.failed"
				}
			},
			init: function() {
				var b = this;
				$.Listeners.sub(this.event.sub.getDetailInfoSuccess).onsuccess(function(a) {
					if (a.product && a.product.brandIdStr) {
						var f = c.get({
							brandIds: a.product.brandIdStr,
							functions: "brandLogo,warmupTpl"
						});
						e({
							url: b.url.getBrandInfoApi,
							data: f,
							jsonp: "callback",
							jsonpCallback: "getBrandInfoCB",
							dataType: "jsonp",
							cache: !0,
							timeout: 8E3,
							ajaxTryTimes: 1,
							code: "getBrandInfo_ajax_err",
							successCallback: function(d) {
								1 == d.code && d.data ? (a.pcBrandInfo = d.data,
										$.Listeners.pub(b.event.pub
											.getBrandInfoSuccess).success(a)) :
									$.Listeners.pub(b.event.pub
										.getBrandInfoFailed).success()
							},
							errorCallback: function() {
								$.Listeners.pub(b.event.pub.getBrandInfoFailed)
									.success()
							}
						})
					}
				})
			}
		};
		h.exports = g
	}, {
		"../../../../../plugins/modules/http/httpV2.js": 96,
		urlParam: 110
	}],
	30: [function(g, h, p) {
		var e = g("../../../../../plugins/moSwitch.js"),
			c = g("../../../../../plugins/modules/imgResize/index.js"),
			b = g("../../../../../plugins/moDynamicConfig.js");
		h.exports = {
			event: {
				pub: {
					buyButtonPrice: "buy.button.price"
				}
			},
			init: function() {
				var a = this;
				$.when(e.getSwitch("1136")).then(function(b) {
					a.getConfig(b)
				}, a.getSwithFail)
			},
			getConfig: function(a) {
				var f = this;
				$.when(b.getDynamicConfig("Iconlist_productdetail")).then(function(d) {
					f.dataProcess(a, d)
				}, "")
			},
			dataProcess: function(a, b) {
				var d;
				a = a && a[0] && a[0].status ? a[0].status : "";
				if (b && b[0].config)
					for (var n = 0; n < b[0].config.length; n++)
						"button_svip" == b[0].config[n].type && (d = b[0].config[n].normal);
				d = c(d, 35, 12, 100);
				$.Listeners.pub(this.event.pub.buyButtonPrice).success({
					status: a,
					img: d
				})
			},
			getSwithFail: function(a) {
				$.Listeners.pub("buy.button.price").success()
			}
		}
	}, {
		"../../../../../plugins/moDynamicConfig.js": 85,
		"../../../../../plugins/moSwitch.js": 86,
		"../../../../../plugins/modules/imgResize/index.js": 99
	}],
	31: [function(g, h, p) {
		g("../../../../../plugins/modules/http/httpV2.js");
		var e = g("../../../../../plugins/modules/checkLogin/globalLogin.js"),
			c = g("urlParam");
		g = {
			url: {
				getDetailInfoApi: "//mapi.vip.com/vips-mobile/rest/shopping/pc/product/detail/v5",
				getDetailInfoApiNeedAuth: "//mapi.vip.com/vips-mobile/rest/shopping/pc2/product/detail/v5",
				getDetailInfoApiFlowB: "//mapi.vip.com/vips-mobile/rest/shopping/pc2/product/detail/v5/s1",
				getDetailInfoApiFlowC1: "//mapi.vip.com/vips-mobile/rest/shopping/pc2/product/detail/v5/s2",
				getDetailInfoApiFlowC2: "//mapi.vip.com/vips-mobile/rest/shopping/pc2/product/detail/v5/s1"
			},
			data: {
				mars_cid: $.Cookie.get("mars_cid")
			},
			event: {
				pub: {
					getDetailInfoSuccess: "getDetailInfo.detail.success",
					getDetailInfoFailed: "getDetailInfo.detail.failed"
				}
			},
			init: function() {
				var b = this,
					a = c.get({
						productId: window.url.m_id,
						functions: "brand_store_info,newBrandLogo,hideOnlySize,extraDetailImages,sku_price,ui_settings",
						kfVersion: 1,
						highlightBgImgVer: 1,
						is_get_TUV: 1,
						commitmentVer: 2,
						haitao_description_fields: "text",
						supportSquare: 1,
						longTitleVer: 2,
						propsVer: 1
					});
				$.Listeners.sub("plugin.sign").onsuccess(function(f) {
					a = e.replaceApiKey(a);
					f = b.url.getDetailInfoApiNeedAuth;
					var d = window.abtest.state();
					"B" == d ? f = b.url.getDetailInfoApiFlowB : "C1" == d ? f = b.url
						.getDetailInfoApiFlowC1 : "C2" == d && (f = b.url
							.getDetailInfoApiFlowC2);
					d = e.auth(f, a, "mapi.vip.com", "get", 1);
					f = window.sign && window.sign.getSign(f, a) || "plugin_sign_error";
					$.ajax({
						url: d.url,
						data: d.param,
						type: "GET",
						dataType: "json",
						headers: {
							Authorization: f
						},
						crossDomain: d.crossDomain,
						xhrFields: {
							withCredentials: !0
						},
						timeout: 8E3,
						success: function(a) {
							console.log('aaaaaaaaaaaa=========',a)
							if (window.abtest.processCallback(a))
								return !0;
							1 == a.code && a.data ? $.Listeners.pub(b.event.pub
									.getDetailInfoSuccess).success(a.data) : $
								.Listeners.pub(b.event.pub.getDetailInfoFailed)
								.success(a.data)
						},
						error: function(a) {
							$.Listeners.pub(b.event.pub.getDetailInfoFailed)
								.success(a.data)
						}
					})
				})
			}
		};
		h.exports = g
	}, {
		"../../../../../plugins/modules/checkLogin/globalLogin.js": 94,
		"../../../../../plugins/modules/http/httpV2.js": 96,
		urlParam: 110
	}],
	32: [function(g, h, p) {
		var e = g("../../../../../plugins/modules/http/httpV2.js");
		h.exports = {
			init: function(c) {
				e({
					url: "//pcapi.vip.com/document/index.php",
					data: {
						codes: "svip98_price_explaination"
					},
					dataType: "jsonp",
					jsonpCallback: "getDocumentContent",
					successCallback: function(b) {
						"success" == b.msg && b.data ? $.Listeners.pub(
							"getDocumentContent.success").success({
							data: b.data[0].content
						}) : $.Listeners.pub("getDocumentContent.success").success({
							data: ""
						})
					}
				})
			}
		}
	}, {
		"../../../../../plugins/modules/http/httpV2.js": 96
	}],
	33: [function(g, h, p) {
		window.nsVideoMod = g("../../video/nsVideoMod.js");
		h.exports = {
			event: {
				sub: {
					initInfoPicFinish: "initInfoPicFinish.detail"
				}
			},
			init: function() {
				this.bindEventListeners()
			},
			bindEventListeners: function() {
				var e = this;
				$.Listeners.sub(e.event.sub.initInfoPicFinish).onsuccess(function(c) {
					c.shortVideoUrl && $("#J-mer-saleTag").hide();
					$("#J-mer-ImgReview").Switchable({
						panelCls: ".pic-sliderwrap",
						triggerCls: "#J-img-content",
						trigger: "mouseenter",
						activeCls: "pic-slider-cur",
						switchEvent: function(a) {
							c.shortVideoUrl && (0 == a ? ($("#J-mer-saleTag")
								.hide(),
								$.Listeners.pub("resume.video.state")
								.success()) : ($("#J-mer-saleTag")
								.show(),
								$.Listeners.pub("pause.video.state")
								.success()));
							$(this).find(".zoomWrapperImage .lazy").lazyload({
								threshold: 200
							})
						}
					});
					var b = {
						title: !1,
						zoomType: "innerzoom",
						preloadText: "\u56fe\u7247\u52a0\u8f7d\u4e2d,\u8bf7\u7a0d\u540e...",
						zoomOutWidth: 1100,
						zoomOutHeight: 1100
					};
					0 < $(".J-mer-bigImgZoom").length && void 0 != $.jqzoom && $(
						".J-mer-bigImgZoom").jqzoom(b);
					$.Listeners.sub("switch.pic.index.trigger").onsuccess(function(a) {
						$(".J-picSlider-items[data-index=" + a.index + "]").trigger(
							"click")
					});
					e.startVideo(c)
				})
			},
			startVideo: function(e) {
				nsVideoMod.init(e.shortVideoUrl)
			}
		}
	}, {
		"../../video/nsVideoMod.js": 77
	}],
	34: [function(g, h, p) {
		var e = g("../../../../../plugins/modules/http/httpV2.js"),
			c = g("urlParam"),
			b = g("../../time/serverTime.js");
		h.exports = {
			url: {
				vendorCsInfoV2: "//mapi.vip.com/vips-mobile/rest/product/pc/vendorCs/info/v2"
			},
			event: {
				sub: {
					initCustomerService: "initCustomerService.detail",
					getServerTimeSuccess: "fetchCustomerService.getServerTimeSuccess"
				},
				pub: {
					fetchCustomerService: "fetchCustomerService.Success"
				}
			},
			init: function() {
				b.init();
				this.bindEventListeners()
			},
			bindEventListeners: function() {
				var a = this;
				$.Listeners.sub(a.event.sub.initCustomerService).onsuccess(function(b) {
					b.product && a.getVendorCs(b)
				})
			},
			getVendorCs: function(a) {
				var b = a.product,
					d = a.store ? a.store.storeId ? a.store.storeId : "" : "",
					n = b.brandIdStr,
					l = b.brandStoreSn,
					k = b.productIdStr,
					t = this;
				a = c.get({
					brandStoreSn: l,
					vendorCode: b.vendorCode,
					productId: k,
					storeId: d,
					salesFlagType: a.product ? b.salesFlagType : 0
				});
				e({
					url: t.url.vendorCsInfoV2,
					data: a,
					jsonp: "callback",
					jsonpCallback: "modCustomerSeviceCB",
					dataType: "jsonp",
					cache: !0,
					timeout: 8E3,
					ajaxTryTimes: 1,
					code: "modCustomerSeviceCB_ajax_err",
					successCallback: function(a) {
						if (1 == a.code)
							$.Listeners.sub(t.event.sub.getServerTimeSuccess).onsuccess(
								function(c) {
									void 0 == a.data && (a.data = {});
									a.data.pcServerTime = c.pcServerTime;
									a.data.pcStoreId = d;
									a.data.pcProductId = k;
									a.data.pcBrandStoreSn = l;
									a.data.pcBrandId = n;
									a.data.isVipSale = b.isVipSale;
									$.Listeners.pub(t.event.pub.fetchCustomerService)
										.success(a.data)
								})
					}
				})
			}
		}
	}, {
		"../../../../../plugins/modules/http/httpV2.js": 96,
		"../../time/serverTime.js": 75,
		urlParam: 110
	}],
	35: [function(g, h, p) {
		h.exports = {
			init: function() {},
			initPropety: function() {
				$("#J-dc-more-btn").on("click", function() {
					var c = $(this);
					c.hasClass("dc-more-btn-on") ? (c.removeClass("dc-more-btn-on"),
						$("#J-dc-more-cont").hide()) : (c.addClass("dc-more-btn-on"),
						$("#J-dc-more-cont").show())
				});
				4 < $(".J_dc_table").find("tr").length && $(".J_dc_more").removeClass("hidden");
				for (var e = 0; e < $(".J_dc_table").find("tr").length; e++)
					3 < e && $(".J_dc_table").find("tr").eq(e).addClass("dc_hidden");
				$(".J_dc_more").click(function() {
					$(".J_dc_info").addClass("dc-table-more");
					$(".J_dc_up").removeClass("hidden");
					$(".J_dc_more").addClass("hidden")
				});
				$(".J_dc_up").click(function() {
					$(".J_dc_info").removeClass("dc-table-more");
					$(".J_dc_up").addClass("hidden");
					$(".J_dc_more").removeClass("hidden")
				})
			},
			initAboutUs: function() {
				var e = this;
				new(g("../../../../../plugins/modules/Scroll/LazyDomHelper"))({
					$dom: $("#J-aboutUs-wrap"),
					loadingFn: function(c) {
						c.loading = !0;
						$("#J-aboutUs-nav-wrap").addClass("icon-list-background");
						$(".J_li_item").on("click", function() {
							var b = $(this).data("num");
							e.aboutUsDisplay(b);
							$(".J-aboutUs-trigger").removeClass("selected");
							$(this).parent().addClass("selected");
							$("#J_au_top").attr("class", "").addClass("au-top-" + b)
						});
						$(".J_li_item:first").click();
						setTimeout(function() {
							c.destroy();
							c.loading = !1
						}, 0)
					}
				})
			},
			aboutUsDisplay: function(e) {
				for (var c = [1, 2, 4, 1, 1, 1, 1, 1, 2, 2], b = $("#J_au_con_list_item_tpl")
					.html(), a = "", f = 1; f <= c[e]; f++)
					a += b.replace("{$img}", "au_img" + e + f + ".png?v=" + VIPSHOP.jsVer);
				$("#J_au_con_list_panel").html(a);
				1 != c[e] ? ($("#J_au_con_wrap").Switchable({
						panelCls: "#J_au_con_list_panel",
						triggerCls: "",
						pervCls: "#J_au_con_left",
						nextCls: "#J_au_con_right",
						effect: "slideX",
						activeCls: "selected",
						trigger: "over",
						delay: 0,
						autoPlay: !1,
						interval: 5E3,
						switchEvent: function(a, b, f) {}
					}),
					$("#J_au_con_left, #J_au_con_right").show()) : ($("#J_au_con_list_panel")
					.attr("style", ""),
					$("#J_au_con_left, #J_au_con_right").hide())
			}
		}
	}, {
		"../../../../../plugins/modules/Scroll/LazyDomHelper": 88
	}],
	36: [function(g, h, p) {
		h.exports = {
			sizeList: "",
			isUseSizeSelector: 0,
			init: function(e) {
				this.sizeList = e;
				12 < e.length && (this.isUseSizeSelector = 1);
				this.bindEventListeners();
				this.show(e)
			},
			bindEventListeners: function() {
				var e = this;
				$.Listeners.sub("stockData").onsuccess(function(c) {
					var b = location.hash.match(/size_id=(\d+)/);
					!e.isUseSizeSelector && b && b[1] && 0 == c[b[1]].type && (
						nsMerchandiseMod.selectedSize = b[1],
						$("#J-cartAdd-sizeID-" + b[1]).addClass("sli-selected").trigger(
							"click"))
				})
			},
			show: function(e) {
				this.isUseSizeSelector && $("#J-cartAdd-sizeID").Selector({
					clone: "#J-cartAdd-vSizeID",
					classPre: "selector",
					defTxt: "- \u8bf7\u9009\u62e9 -",
					evtChoose: function() {}
				})
			}
		}
	}, {}],
	37: [function(g, h, p) {
		var e = g("../../../../../plugins/modules/template/index.js"),
			c = g("../../../../../plugins/modules/http/httpV2.js"),
			b = g("urlParam"),
			a = {
				0: "",
				1: "\u81ea\u52a8\u62a2\u8d27",
				2: "\u62a2\u8d27\u4e2d"
			},
			f = {
				0: "",
				1: "sli-can-reserve",
				2: "sli-has-reserved"
			};
		h.exports = {
			templateLoaded: !1,
			reservedMap: {},
			$openedTipEl: null,
			init: function(a) {
				var b = this;
				$.Loader.pagelet({
					name: "reserve",
					html: "//shop.vipstatic.com/html/public/shop/reserve-hash-510f3ca3.js?" +
						VIPSHOP.jsVer,
					css: [],
					js: function() {},
					callback: function(a) {
						$("body").append(a);
						b.templateLoaded = !0
					}
				});
				this._getReservedData(a);
				$(document).on("click", function(a) {
					a = $(a.target);
					var d = b.$openedTipEl;
					d && !a.is(d) && 0 === d.has(a).length && b._hideOpenedTip()
				})
			},
			handleSize: function(a, b) {
				var f = this._getItemById(b);
				f && a.addClass(f.className).prepend('<span class="i-reserve">' + f.stateTextFix +
					"</span>")
			},
			belongToReserve: function(a) {
				a = this._getItemById(a);
				if (!a)
					return !1;
				a = a.state;
				return 1 === a || 2 === a
			},
			belongToCanReserve: function(a) {
				return (a = this._getItemById(a)) ? 1 === a.state : !1
			},
			belongToHasReserved: function(a) {
				return (a = this._getItemById(a)) ? 2 === a.state : !1
			},
			reserve: function(a) {
				if (this.templateLoaded && !a.is(this.$openedTipEl)) {
					this._hideOpenedTip();
					var b = this,
						f = a.data("id") || a.data("val"),
						c = this._getItemById(f);
					c && (c.hasQrcode || (c.hasClicked || (c.hasClicked = !0,
								a.append(e("J-size-reserve", {
									id: f
								})).find(".size-reserve-tooltips").on("click", function(a) {
									a.stopPropagation()
								}).find(".size-reserve-close").on("click", function() {
									b._hideTip(a)
								})),
							this._getQrcode({
								id: f,
								$el: a
							})),
						this._showTip(a))
				}
			},
			_getQrcode: function(a) {
				function f(b) {
					t.html(e("J-size-reserve-qrcode", {
						src: b,
						loading: !1
					}));
					if (!b)
						t.find(".size-reserve-qrcode-reload").on("click", function() {
							l._getQrcode(a)
						})
				}
				var l = this,
					k = a.id,
					t = a.$el.find(".size-reserve-qrcode-box"),
					m, q = this._getItemById(k);
				t.html(e("J-size-reserve-qrcode", {
					loading: !0
				}));
				$.Listeners.sub("buyLimit.num").onsuccess(function(a) {
					m = a.buyLimitMin
				});
				k = "pages/index/index?$route=" + encodeURIComponent(
					"pages/checkout/pay_page/index?size_id=" + k + "&size_num=" + m +
					"&is_independent=1&isPreBuy=1");
				k = b.get({
					hash: "ptx26",
					page: "pages/qrCodeRouter/qrCodeRouter",
					str: k
				});
				c({
					url: "//mapi.vip.com/vips-mobile/rest/shopping/wxcode/pc/getWxACodeShare/v1",
					data: k,
					jsonpCallback: "get_qrcode",
					successCallback: function(a) {
						1 === a.code && a.data.pic ? (q.hasQrcode = !0,
							f("data:image/png;base64," + a.data.pic)) : f()
					},
					errorCallback: function() {
						f()
					}
				})
			},
			_hideOpenedTip: function() {
				this.$openedTipEl && this._hideTip(this.$openedTipEl)
			},
			_showTip: function(a) {
				a.addClass("show-reserve-tooltips");
				this.$openedTipEl = a
			},
			_hideTip: function(a) {
				a.removeClass("show-reserve-tooltips");
				this.$openedTipEl = null
			},
			_getReservedData: function(d) {
				if (d) {
					var b = this;
					$.each(d, function(d, c) {
						var e = c.reservedState;
						b.reservedMap[c.msizeId] = {
							state: e,
							stateText: c.reservedStateText,
							stateTextFix: a[e],
							className: f[e],
							id: c.msizeId
						}
					})
				}
			},
			_getItemById: function(a) {
				return this.reservedMap[a]
			}
		}
	}, {
		"../../../../../plugins/modules/http/httpV2.js": 96,
		"../../../../../plugins/modules/template/index.js": 100,
		urlParam: 110
	}],
	38: [function(g, h, p) {
		var e = g("../../../../../plugins/modules/checkLogin/globalLogin.js");
		g("../../../../../plugins/modules/http/httpV2.js");
		var c = g("urlParam");
		g = {
			data: {
				wap_consumer: UINFO.parseCookie().luc || "a",
				futurePriceMode: c.query("futurePriceMode"),
				mid: location.href.split("-")[2].split(".")[0],
				brandId: ""
			},
			event: {
				sub: {
					detailV5: "detailV5"
				}
			},
			init: function() {
				var b = this;
				$.Listeners.sub(b.event.sub.detailV5).onsuccess(function(a) {
					b.data.brandId = a.product.brandId;
					var f = c.get({
						mid: b.data.mid,
						brandid: b.data.brandId,
						device: 1,
						prepayMsgType: "1",
						couponInfoVer: "2",
						functions: "futurePrice,sku_price,prepay_sku_price,flash_sale_stock,businessCode,promotionTips,get_history_price,banInfo,priceChart,quotaInfo,priceView,buyLimit,exclusivePrice,restrictTips,panelView,foreShowActive,showSingleColor,futurePriceView,invisible,userContext,midSupportServices,floatingView,announcement,svipView,svipAsSalePrice,svipShowPrice",
						freightTipsVer: 3,
						is_get_prepay_info: "1",
						needTipsType: 16,
						supportSquare: 1,
						supportAllPreheatTipsTypes: 1,
						wap_consumer: b.data.wap_consumer,
						supportReserved: "2",
						promotionTipsVer: "5",
						panelViewVer: "2",
						priceViewVer: "9",
						salePriceVer: "2",
						svipPriceMode: 1,
						uiSwitch: "priceViewAbt:1"
					});
					"1" == b.data.futurePriceMode && $.extend(f, {
						futurePriceMode: 1
					});
					var d =
						"//mapi.vip.com/vips-mobile/rest/shopping/goods/pc2/vendorSkuList/v4";
					a = window.abtest.state();
					"B" == a ? d =
						"//mapi.vip.com/vips-mobile/rest/shopping/goods/pc2/vendorSkuList/v4/s1" :
						"C1" == a ? d =
						"//mapi.vip.com/vips-mobile/rest/shopping/goods/pc2/vendorSkuList/v4/s2" :
						"C2" == a && (d =
							"//mapi.vip.com/vips-mobile/rest/shopping/goods/pc2/vendorSkuList/v4/s1"
							);
					$.Listeners.sub("plugin.sign").onsuccess(function(a) {
						f = e.replaceApiKey(f);
						a = e.auth(d, f, "mapi.vip.com", "get", 1);
						var c = window.sign.getSign(d, f);
						$.ajax({
							url: a.url,
							data: a.param,
							type: "POST",
							dataType: "json",
							headers: {
								Authorization: c
							},
							crossDomain: a.crossDomain,
							xhrFields: {
								withCredentials: !0
							},
							timeout: 8E3,
							success: function(a) {
								if (window.abtest.processCallback(a))
									return !0;
								1 == a.code && a.data ? $.Listeners.pub(
										"getProductInfo.detail.success")
									.success(b.dataProcess(a.data)) : $
									.Listeners.pub(
										"getProductInfo.detail.fail")
									.success()
							},
							error: function(a, d) {
								$.Listeners.pub(
										"getProductInfo.detail.fail")
									.success()
							}
						})
					})
				})
			},
			dataProcess: function(b) {
				var a = b.skus,
					f = b.product_price_range_mapping && b.product_price_range_mapping[this.data
						.mid] || null,
					d = {},
					d = $.extend(!0, d, b.promotionTipsMap),
					c;
				for (c in a)
					if (b.promotionTipsMap && b.promotionTipsMap[a[c].promotionTipsKey]) {
						var e = b.promotionTipsMap[a[c].promotionTipsKey].preheatTipsList;
						if (e && "1" == e[0].showMode) {
							var k = e[0].salePrice,
								t = e[0].referPrice,
								m = t ? t.referDiscount : k.saleDiscount,
								t = t ? t.referMarketPrice : k.saleMarketPrice;
							$.extend(a[c].price, this.dataMap(a[c].price, k) || {});
							a[c].price.priceIconMsg = k.salePriceTips;
							a[c].price.promotion_price = k.salePrice;
							a[c].price.promotionDiscount = m;
							a[c].price.marketPrice = t;
							a[c].price.quotaInfo = e[0].quotaInfo;
							a[c].priceView && a[c].priceView.flashStock && (a[c].priceView
								.flashStock = null);
							b.promotionTipsMap[a[c].promotionTipsKey].preheatTipsList = null
						}
					}
				f && d && d[f.promotionTipsKey] && (e = d[f.promotionTipsKey].preheatTipsList) &&
					"1" == e[0].showMode && (k = e[0].salePrice,
						m = (t = e[0].referPrice) ? t.referDiscount : k.saleDiscount,
						a = t ? t.referMarketPrice : k.saleMarketPrice,
						$.extend(f, this.dataMap(f, k) || {}),
						f.promotion_icon_msg = e[0].salePrice.salePriceTips,
						f.promotion_price = e[0].salePrice.salePrice,
						f.promotionDiscount = m,
						f.minMarketPriceOfMinSkuVipshopPrice = a,
						f.quotaInfo = e[0].quotaInfo,
						f.priceView && f.priceView.flashStock && (f.priceView.flashStock = null),
						b.promotionTipsMap[f.promotionTipsKey] && (b.promotionTipsMap[f
							.promotionTipsKey].preheatTipsList = null));
				return b
			},
			dataMap: function(b, a) {
				b.showMode = 1;
				if ("crazy" == a.salePriceType)
					b.promotionBusinessCode = 4,
					b.promotion_price_type = 203;
				else if ("quick" == a.salePriceType)
					b.promotionBusinessCode = 1,
					b.promotion_price_type = 18;
				else if ("special" == a.salePriceType || "svip" == a.salePriceType)
					b.promotion_price_type = 203,
					b.promotionBusinessCode = -999;
				1 == a.salePriceTimeType && (b.salePriceTime = this.countDown(1E3 * a
					.salePriceTime));
				return b
			},
			countDown: function(b) {
				var a = (new Date).getMonth() + 1,
					f = (new Date).getDate(),
					d = new Date(b);
				b = d.getMonth() + 1;
				var c = d.getHours(),
					e = d.getMinutes(),
					d = d.getDate(),
					e = 0 == e ? "00" : e;
				return a == b && f == d ? "\u4eca\u65e5" + c + "\uff1a" + e + " \u5f00\u62a2" : a ==
					b && 1 == d - f || 1 == b - a && 1 == d ? "\u660e\u5929" + c + "\uff1a" + e +
					" \u5f00\u62a2" : b + "\u6708" + d + "\u65e5 " + c + "\uff1a" + e +
					" \u5f00\u62a2"
			}
		};
		h.exports = g
	}, {
		"../../../../../plugins/modules/checkLogin/globalLogin.js": 94,
		"../../../../../plugins/modules/http/httpV2.js": 96,
		urlParam: 110
	}],
	39: [function(g, h, p) {
		var e = g("../../../../../plugins/modules/http/httpV2.js"),
			c = g("urlParam");
		h.exports = {
			url: {
				getVendorQaApi: "//mapi.vip.com/vips-mobile/rest/shopping/pc/detail/vendorqa/v1",
				getDocumentAsk: "//pcapi.vip.com/document/index.php"
			},
			event: {
				sub: {
					getVendorQaSuccess: "getVendorQa.detail.success",
					getDocumentAskSuccess: "getDocumentAsk.detail.success",
					getBrandInfoSuccess: "getBrandInfo.detail.success"
				},
				pub: {
					getDocumentAskSuccess: "getDocumentAsk.detail.success",
					getVendorQaSuccess: "getVendorQa.detail.success"
				}
			},
			init: function() {
				var b = this;
				$.Listeners.sub(b.event.sub.getVendorQaSuccess).onsuccess(function(a) {
					var b = a.qaData,
						d = [];
					a = a.product;
					b.list && (d = b.list);
					a.aboutPrice && d.push({
						question: "\u4ef7\u683c\u8bf4\u660e",
						answer: a.aboutPrice
					});
					b = {
						list: d
					};
					$("#J-FW-question-detail").html($.Tpl("J-FW-question-detail_tpl", b))
				});
				$.Listeners.sub(b.event.sub.getBrandInfoSuccess).onsuccess(function(a) {
					if (a.product) {
						var f = c.get({
							productId: a.product.productIdStr
						});
						e({
							url: b.url.getVendorQaApi,
							data: f,
							jsonp: "callback",
							jsonpCallback: "getVendorQaCb",
							dataType: "jsonp",
							cache: !0,
							timeout: 8E3,
							ajaxTryTimes: 1,
							code: "getVendorQa_ajax_err",
							successCallback: function(d) {
								1 == d.code && d.data && $.Listeners.pub(b.event
									.pub.getVendorQaSuccess).success({
									qaData: d.data,
									product: a.product
								})
							},
							errorCallback: function(a) {}
						})
					}
				})
			}
		}
	}, {
		"../../../../../plugins/modules/http/httpV2.js": 96,
		urlParam: 110
	}],
	40: [function(g, h, p) {
		var e = g("../../../../plugins/modules/http/httpV2.js"),
			c = g("../../../../plugins/modules/checkLogin/globalLogin.js"),
			b = {
				addProFavBtn: $("#J-addProdFav"),
				skuList: [],
				areaId: "",
				banStatus: null,
				haveFavCount: 0,
				errItv: null,
				addFavSkuApi: "//mapi.vip.com/vips-mobile/rest/fav/pc/goods/add_by_mid",
				delFavSkuApi: "//mapi.vip.com/vips-mobile/rest/fav/pc/goods/batch/delete_by_mid_v2",
				skuFavApi: "//mapi.vip.com/vips-mobile/rest/fav/pc/goods/status",
				favGoodsCountApi: "//myi.vip.com/fav_sku/goods/count",
				favGoodsCountData: null,
				init: function() {
					2 == nsMerchandiseMod.brandStatus && ($.isEmptyObject(nsMerchandiseMod.pcSizeData) ?
						$("#J_error_tips_list").removeClass("hidden") : this.initFavScene())
				},
				initFavScene: function() {
					b.skuList = nsMerchandiseMod.pcSizeData.sizeList;
					this.initFavBtn();
					this.getAddress();
					$("#J-mer-saleTag").remove();
					this.bindEventListeners();
					this.bindEvent()
				},
				getAddress: function() {
					var a = $.Cookie.get("vip_address") && $.parseJSON(decodeURIComponent(escape($
						.Cookie.get("vip_address"))));
					this.areaId = a.sid ? a.sid : a.did ? a.did : a.cid ? a.cid : a.pid || "104104"
				},
				bindEventListeners: function() {
					var a = this;
					$.Listeners.sub("loginSuccess").onsuccess(function() {
						a.getSkuFav()
					});
					$.Listeners.sub("delete.sku.fav.success").onsuccess(function() {
						a.favBtnReset("\u6536\u85cf\u5546\u54c1")
					});
					$.Listeners.sub("add.sku.fav.success").onsuccess(function() {
						a.favBtnDisable("\u5df2\u6536\u85cf")
					})
				},
				bindEvent: function() {
					var a = this;
					$("#J-addProdFav").on("click", function() {
						$.Cookie.get("VipLID") ? $(this).hasClass("ui-btn-disable") ? ($(
								"#J-addProdFav").addClass("ui-btn-disable").html(
								"\u53d6\u6d88\u4e2d"),
							b.delFavPro()) : ($("#J-addProdFav").addClass("ui-btn-disable")
							.html("\u6536\u85cf\u4e2d"),
							b.addFavPro()) : (c.redirect(),
							VIPSHOP.login.init({
								loginEvent: function() {
									$("#J-addProdFav").click()
								},
								closeEvent: function() {
									a.favBtnReset("\u6536\u85cf\u5546\u54c1")
								}
							}))
					});
					$("#J-dt-collect").on("click", function() {
						$("html, body").animate({
							scrollTop: 0
						}, 200);
						setTimeout(function() {
							$("#J-addProdFav").trigger("click")
						}, 750)
					});
					$("#J-cartAdd-vSizeID").on("click", function() {
						$("#J-sizeArea-wrap").hasClass("status-notice") && $("#J-sizeArea-wrap")
							.removeClass("status-notice");
						$("#J-warm-s-con").hasClass("status-notice") && $("#J-warm-s-con")
							.removeClass("status-notice")
					});
					if (!nsMerchandiseMod.isUseSizeSelector)
						$("#J-cartAdd-frm").on("click", ".J-warm-s-item", function() {
							var a = $(this);
							a.hasClass("sli-disabled") || (a.hasClass("sli-selected") ? (a
								.removeClass("sli-selected"),
								nsMerchandiseMod.selectedSize = -1) : (a.addClass(
									"sli-selected").siblings().removeClass("sli-selected"),
								$("#J-sizeArea-wrap").removeClass("status-notice"),
								$("#J-warm-s-con").removeClass("status-notice"),
								nsSizeStockMod.chooseSize($(this))))
						});
					$(document).delegate("#J-couponFail, #J-addFavfailClose", "click", function() {
						b.dialogW.close();
						clearInterval(b.errItv)
					});
					$(document).delegate("#J-couponFailRetry", "click", function() {
						b.dialogW.close();
						clearInterval(b.errItv);
						b.addFavPro()
					})
				},
				banEndtime: function(a) {
					this.banEndtime = VIPSHOP.Time.get(1E3 * a, "M\u6708D\u65e5 H:m");
					this.banEndtime = this.banEndtime.replace(/\d+/g, function(a) {
						return 10 <= a ? a : "0" + a
					})
				},
				initFavBtn: function() {
					0 == this.skuList.length && this.favBtnDisable("\u6536\u85cf\u5546\u54c1")
				},
				getSkuFav: function() {
					var a = this,
						b = {
							app_name: "shop_pc",
							app_version: "4.0",
							mars_cid: $.Cookie.get("mars_cid"),
							api_key: "70f71280d5d547b2a7bb370a529aeea1",
							warehouse: $.Cookie.get("vip_wh"),
							province_id: $.Cookie.get("vip_province"),
							source_app: "pc",
							mobile_platform: "1",
							fdc_area_id: a.areaId,
							mids: nsMerchandiseMod.mid
						};
					e({
						url: a.skuFavApi,
						data: b,
						dataType: "jsonp",
						jsonpCallback: "checkFavGoods",
						cache: !0,
						successCallback: function(d) {
							a.getSkuFavCB(d)
						},
						errorCallback: function() {
							VIPSHOP.log(
								"\u67e5\u8be2\u9884\u70ed\u5546\u54c1\u6536\u85cf\u5931\u8d25"
								)
						}
					})
				},
				getSkuFavCB: function(a) {
					1 == a.code && a.data && a.data.midMap && (a.data.midMap[nsMerchandiseMod.mid] ? (
						this.favBtnDisable("\u5df2\u6536\u85cf"),
						$.Listeners.pub("update.current.sku.state").success({
							data: 1
						})) : (this.favBtnReset("\u6536\u85cf\u5546\u54c1"),
						$.Listeners.pub("update.current.sku.state").success({
							data: 0
						})))
				},
				favBtnDisable: function(a) {
					$("#J-addProdFav").addClass("ui-btn-disable").html(a);
					$("#J-dt-collect").addClass("ui-btn-disable").html(a)
				},
				favBtnReset: function(a) {
					$("#J-addProdFav").removeClass("ui-btn-disable").html(a)
				},
				addFavPro: function() {
					var a = this,
						b = {
							app_name: "shop_pc",
							app_version: "4.0",
							mars_cid: $.Cookie.get("mars_cid"),
							api_key: "70f71280d5d547b2a7bb370a529aeea1",
							warehouse: $.Cookie.get("vip_wh"),
							province_id: $.Cookie.get("vip_province"),
							source_app: "pc",
							channel: "PC",
							mobile_platform: "1",
							fdc_area_id: a.areaId,
							mid: nsMerchandiseMod.mid
						}; -
					1 != nsMerchandiseMod.selectedSize && (b.sizeId = nsMerchandiseMod.selectedSize);
					e({
						url: a.addFavSkuApi,
						data: b,
						dataType: "jsonp",
						jsonpCallback: "addFavGoods",
						cache: !0,
						successCallback: function(d) {
							a.addFavProCB_success(d);
							$.Listeners.pub("update.current.sku.state").success({
								data: 1
							})
						},
						errorCallback: function() {
							a.addFavProCB_error();
							VIPSHOP.log("\u6536\u85cf\u9884\u70ed\u5546\u54c1\u5931\u8d25")
						}
					})
				},
				addFavProCB_success: function(a) {
					var f = this;
					b.dialogW && b.dialogW.remove();
					b.dialogW = $.Dialog({
						model: !0,
						effect: {
							effect: "slide",
							duration: 200
						},
						opacity: 0.6,
						size: [400],
						custom: !0
					});
					if (1 == a.code) {
						if (0 < $("#J-r-item-goods").length)
							$.Listeners.sub("sidebar.loaded").onsuccess(function() {
								$.Listeners.pub("sidebar.fly.myFav").success({
									target: $("#J-wst-wrap")
								})
							});
						setTimeout(function() {
							$.Listeners.sub("sidebar.loaded").onsuccess(function() {
								$.Listeners.pub("sidebar.fly.myFav").success({
									target: $("#J-wst-wrap")
								})
							});
							f.favBtnDisable("\u5df2\u6536\u85cf")
						}, 1E3)
					} else
						return f.addFavProCB_error(),
							!1
				},
				addFavProCB_error: function() {
					b.dialogW && b.dialogW.remove();
					b.dialogW = $.Dialog({
						model: !0,
						content: $("#J-addFavfail-template"),
						effect: {
							effect: "slide",
							duration: 200
						},
						opacity: 0.6,
						size: [400],
						custom: !0
					});
					b.dialogW.open();
					b.errItv = setInterval(function() {
						var a = b.dialogW.getElem("#J-time-on").html();
						1 == a ? (b.dialogW.close(),
							clearInterval(b.errItv)) : b.dialogW.getElem("#J-time-on").html(
							a - 1)
					}, 1E3);
					this.favBtnReset("\u6536\u85cf\u5546\u54c1")
				},
				delFavPro: function() {
					var a = this,
						b = {
							app_name: "shop_pc",
							app_version: "4.0",
							mars_cid: $.Cookie.get("mars_cid"),
							api_key: "70f71280d5d547b2a7bb370a529aeea1",
							warehouse: $.Cookie.get("vip_wh"),
							province_id: $.Cookie.get("vip_province"),
							source_app: "pc",
							mobile_platform: "1",
							fdc_area_id: a.areaId,
							mids: nsMerchandiseMod.mid
						};
					e({
						url: a.delFavSkuApi,
						data: b,
						dataType: "jsonp",
						jsonpCallback: "delFavGoods",
						cache: !0,
						successCallback: function(d) {
							a.delFavProCB_success(d);
							$.Listeners.pub("update.current.sku.state").success({
								data: 0
							})
						},
						errorCallback: function() {
							VIPSHOP.log("\u6536\u85cf\u9884\u70ed\u5546\u54c1\u5931\u8d25")
						}
					})
				},
				delFavProCB_success: function(a) {
					1 == a.code && a.data ? (a = a.data.midList,
							0 == a.length ? this.favBtnReset("\u6536\u85cf\u5546\u54c1") : a[0] ==
							nsMerchandiseMod.mid && this.favBtnDisable("\u5df2\u6536\u85cf")) : this
						.delFavProCB_error()
				},
				delFavProCB_error: function() {
					this.favBtnDisable("\u5df2\u6536\u85cf")
				}
			};
		h.exports = b
	}, {
		"../../../../plugins/modules/checkLogin/globalLogin.js": 94,
		"../../../../plugins/modules/http/httpV2.js": 96
	}],
	41: [function(g, h, p) {
		h.exports = {
			init: function() {
				$.Cookie.get("vip_wh"); -
				1 != window.location.href.indexOf("err") && ($(
						"#J-detailShare-wrap, #J-sizeArea-wrap, #J-button-box, #J-num-select, #J-vip-point, #J-other-form-box, #J-topbar-addBtn"
						).remove(),
					$(".J-colorItem").addClass("cli-sold-out"),
					$(".J-colorItem").attr("href", "###"),
					$("#J-mer-saleTag").addClass("soldout-tag").removeClass("soldchance-tag")
					.show(),
					nsReco.displayTxt = "\u5df2\u62a2\u5149",
					$("#J-proData-box").append($("#J-saleOut-lodingTpl").html()),
					nsReco.loadRecoScript(nsReco.renderRecoCB),
					$.Listeners.sub("load.size.table.success", "checkProIsInList", "stockData")
					.onsuccess(function() {
						$("#J-btn-waitlist").hide()
					}))
			}
		}
	}, {}],
	42: [function(g, h, p) {
		h.exports = {
			max: Infinity,
			min: 1,
			errTips: {
				minTips: "\u672c\u5546\u54c1<span></span>\u4ef6\u8d77\u552e",
				maxTips: "\u540c\u5c3a\u7801\u9650\u8d2d<span></span>\u4ef6"
			},
			isPrepay: nsMerchandiseMod.isPrePay,
			init: function(e) {
				var c = this;
				$(document).on("click", ".J-num-act-reduce", function() {
					c.change(-1)
				}).on("click", ".J-num-act-add", function() {
					c.change(1)
				});
				c.bindCustomEvent()
			},
			bindCustomEvent: function(e) {
				var c = this;
				$.Listeners.sub("buyLimit.num").onsuccess(function(b) {
					b.buyLimitMax && (c.max = b.buyLimitMax);
					b.buyLimitMin && (c.min = b.buyLimitMin);
					c.reset(e)
				})
			},
			reset: function(e) {
				e < this.max && (this.max = e);
				0 > $("#J-num-select").length || !$("#J-num-select").is(":visible") || (
					nsMerchandiseMod.num = this.min,
					$(".J-pro-num-txt").html(this.min),
					$("#J-num-input").val(this.min),
					$(".J-num-act-reduce").addClass("z-disable"),
					this.max <= this.min ? $(".J-num-act-add").addClass("z-disable") : $(
						".J-num-act-add").removeClass("z-disable"),
					$.Listeners.pub("change.buy.num.success").success({
						num: this.min
					}))
			},
			setStatus_disabled: function() {
				$(document).off("click", ".J-num-act-reduce").off("click", ".J-num-act-add");
				$(".J-num-act-add").addClass("z-disable");
				$(".J-num-act-reduce").addClass("z-disable")
			},
			change: function(e) {
				var c = null,
					b = this.errTips,
					a = this.min,
					f = this.max,
					d = nsMerchandiseMod.num; -
				1 == nsMerchandiseMod.selectedSize ? $(".J-sizeArea-wrap").addClass(
					"status-notice") : 0 < e ? d < f ? (d++,
						$(".J-pro-num-txt").html(d),
						$("#J-num-input").val(d),
						nsMerchandiseMod.num = d,
						$(".J-num-act-reduce").removeClass("z-disable"),
						d == f && $(".J-num-act-add").addClass("z-disable"),
						$.Listeners.pub("change.buy.num.success").success({
							num: d
						})) : (clearTimeout(c),
						$("#J-num-select, #J-topbarNum-select").addClass("status-notice").find(
							".J-num-tips").html(b.maxTips).find("span").html(f),
						$(".J_goods_num_error_tips").addClass("z-ui-tooltips-in"),
						c = setTimeout(function() {
							$("#J-num-select, #J-topbarNum-select").removeClass(
							"status-notice");
							$(".J_goods_num_error_tips").removeClass("z-ui-tooltips-in")
						}, 1E3)) : d > a ? (d--,
						$(".J-pro-num-txt").html(d),
						$("#J-num-input").val(d),
						nsMerchandiseMod.num = d,
						$(".J-num-act-add").removeClass("z-disable"),
						d == a && $(".J-num-act-reduce").addClass("z-disable"),
						$.Listeners.pub("change.buy.num.success").success({
							num: d
						})) : (clearTimeout(c),
						$("#J-num-select, #J-topbarNum-select").addClass("status-notice").find(
							".J-num-tips").html(b.minTips).find("span").html(a),
						$(".J_goods_num_error_tips").addClass("z-ui-tooltips-in"),
						c = setTimeout(function() {
							$("#J-num-select, #J-topbarNum-select").removeClass(
							"status-notice");
							$(".J_goods_num_error_tips").removeClass("z-ui-tooltips-in")
						}, 1E3))
			}
		}
	}, {}],
	43: [function(g, h, p) {
		var e = g("../../../../../plugins/modules/template");
		g = {
			mid: location.href.split("-")[2].split(".")[0],
			priceView: {
				sku: {},
				mid: {}
			},
			data: "",
			sku: "",
			status: "",
			vipIcon: "",
			event: {
				sub: {
					getInfoAndSkuSuccess: "getInfoAndSkuSuccess.detail.success",
					getDetailInfoSuccess: "getDetailInfo.detail.success",
					sizeRenderPrice: "sizeRenderPrice.detail",
					buyButtonPrice: "buy.button.price",
					buyButtonSVIP: "buy.button.svip"
				}
			},
			init: function(c) {
				$("body").append(
					'<script type="text/html" id="J_buy_button_tpl">\r\n    {{if detailStatus != 2}}\r\n    <div class="i-button">\r\n        \x3c!-- \u6d77\u6dd8\u9996\u6b21\u8fdb\u5165\u63d0\u793a\u6d6e\u5c42\u663e\u793a .z-ui-tooltips-in --\x3e\r\n        <div id="J-button-box" class="button-box {{prepayClass}}">\r\n            \x3c!-- loading\u72b6\u6001\u52a0 .z-ui-btn-loading   disable\u72b6\u6001\u52a0 .ui-btn-disable --\x3e\r\n         \r\n            <button type="submit" mars_sead="{{btnMarsValue}}" class="ui-btn-large ui-btn-primary ui-btn-loading" id="J-cartAdd-submit">\r\n                <div class="ui-btn-loading-before clearfix J_cartAdd_Price">\r\n                    {{if !prepay  && finalPrice && finalPrice.price && comparePrice && comparePrice.price}}\r\n                    <div class="hasComparePrice clearfix">\r\n                        <div class="comparePrice">\r\n                            <span class="comparePrice_price {{if comparePrice.style == 1}}comparePrice_underline{{/if}} {{if !comparePrice.priceTips}}oneLine{{/if}}" title = "{{comparePrice.price}}">&yen;{{comparePrice.price}}</span>\r\n                            {{if comparePrice.priceTips}}\r\n                            <span class="comparePrice_priceTips">{{comparePrice.priceTips}}</span>\r\n                            {{/if}}\r\n                        </div>\r\n                        <div class="finalPrice">\r\n                            <div class="finalPrice_price_wrap">\r\n                                {{if finalPrice.style && finalPrice.style == "1" && vipIcon}}\r\n                                    <img src="{{vipIcon | delProtocolHeader}}">\r\n                                {{/if}}\r\n                                <span class="finalPrice_price" title="{{finalPrice.price}}">&yen;{{finalPrice.price}}<span class="price_suff">{{finalPrice.priceSuff}}</span></span>\r\n                            </div>                            \r\n                            <div class="finalPrice_priceTips_wrap">\r\n                                {{if finalPrice.priceTips}}\r\n                                <span class="finalPrice_priceTips">{{finalPrice.priceTips}}</span>\r\n                                {{/if}}\r\n                                {{if finalPrice.subPriceTips}}\r\n                                <span class="finalPrice_subPriceTips">{{finalPrice.subPriceTips}}</span>\r\n                                {{/if}}\r\n                                <span class="button_arrow"></span>\r\n                            </div>\r\n                        </div>\r\n                    </div>\r\n                    {{else if !prepay && finalPrice && finalPrice.price}}\r\n                    <div class="hasFinalPrice">\r\n                        <div class="finalPrice">\r\n                            \x3c!-- finalPrice.style && finalPrice.style == "1" &&  --\x3e\r\n                            {{if finalPrice.style && finalPrice.style == "1" && vipIcon}}\r\n                                <img src="{{vipIcon | delProtocolHeader}}">\r\n                            {{/if}}\r\n                            <span class="finalPrice_price">&yen;{{finalPrice.price}}<span class="price_suff">{{finalPrice.priceSuff}}</span></span>\r\n                            {{if finalPrice.subPriceTips || finalPrice.priceTips}}\r\n                            <span class="finalPrice_subPriceTips">{{finalPrice.priceTips}}{{if finalPrice.subPriceTips}}&nbsp;{{finalPrice.subPriceTips}}{{/if}}</span>\r\n                            {{/if}}\r\n                            <span class="button_arrow"></span>\r\n                        </div>\r\n                    </div>\r\n                    {{else}}\r\n                        {{if !prepay}}<i class="vipFont if-shopping-bag ui-btn-left-icon">&#xe604;</i>{{/if}}\r\n                        {{addCartBtnTxt}}\r\n                        {{if prepay}}\r\n                        <i class="J_prepay_first_money"></i>\r\n                        <i class="prepay-btn-amount J_prepay_btn_amount"></i>\r\n                        {{/if}}\r\n                    {{/if}}\r\n                </div>\r\n                <div class="ui-btn-loading-after">\r\n                    <i class="ii-loading-gray-16x16"></i><span class="ui-btn-txt">\u5904\u7406\u4e2d...</span>\r\n                </div>\r\n            </button>\x3c!----\x3e\r\n            \x3c!-- \u5206\u671f\u8d2d\u6309\u94ae\uff0c\u6682\u65f6\u4fdd\u7559 --\x3e\r\n            <button type="submit" class="ui-btn-large ui-btn-secondary ui-btn-loading btn-stageloan hidden"  id="J_stage_loan_btn" mars_sead="m_te_goods_buy_viphua_buybtn">\r\n\r\n                \x3c!-- \u4e00\u952e\u5206\u671f\u8d2d\u6309\u94ae\r\n                loading\u72b6\u6001\u52a0 .z-ui-btn-loading   disable\u72b6\u6001\u52a0 .ui-btn-disable --\x3e\r\n                <span class="ui-btn-loading-before">\r\n                \u4e00\u952e\u5206\u671f\u8d2d\r\n                </span>\r\n                <span class="ui-btn-loading-after">\r\n                <i class="ii-loading-gray-16x16"></i><span class="ui-btn-txt">\u5904\u7406\u4e2d...</span>\r\n                </span>\r\n\r\n                <div id=""\r\n                     class="ui-tooltips ui-tooltips-top-arrow user-credit-unqualified-tips J_user_credit_unqualified_tips">\r\n                    <div class="ui-tooltips-arrow">\r\n                        <i class="arrow arrow-out">&#9670;</i>\r\n                        <i class="arrow">&#9670;</i>\r\n                    </div>\r\n                    <div class="ui-tooltips-content">\r\n                        <p>\u62b1\u6b49\u60a8\u5f53\u524d\u7684\u989d\u5ea6\u4e0d\u591f\uff01</p>\r\n                    </div>\r\n                </div>\r\n            </button>\r\n            <div id="J-global-first-tips" class="ui-tooltips ui-tooltips-left-arrow">\r\n                <div class="ui-tooltips-arrow">\r\n                    <i class="arrow arrow-out">&#9670;</i>\r\n                    <i class="arrow">&#9670;</i>\r\n                </div>\r\n                <div class="ui-tooltips-content">\r\n                    <p>\u6d77\u5916\u5546\u54c1\u4e0d\u4f1a\u653e\u5165\u8d2d\u7269\u888b\uff0c\u8bf7\u5c3d\u5feb\u4e0b\u5355\u62a2\u8d2d\uff01</p>\r\n                </div>\r\n            </div>\r\n        </div>\r\n    </div>\r\n    {{else}}\r\n    <div class="warm-s-tool J_banAddFav clearfix">\r\n        <div class="wst-wrap" mars_sead="prwdetails-col-btn" id="J-wst-wrap">\r\n            <a  class="ui-btn-large ui-btn-primary ui-btn-loading" id="J-addProdFav">\r\n                <span class="ui-btn-loading-before" id="J-addProdFav-txt">\u6536\u85cf\u5546\u54c1</span>\r\n                <span class="ui-btn-loading-after"><i class="ii-loading-gray-16x16"></i><span\r\n                        class="ui-btn-txt">\u6536\u85cf\u4e2d...</span></span>\r\n            </a>\r\n        </div>\r\n    </div>\r\n    <p class="warm-s-tips"\r\n       id="J-warm-s-tips">\u63d0\u524d\u6536\u85cf\u5546\u54c1\uff0cAPP\u4e0ePC\u540c\u6b65\uff0c\u552e\u524d\u63d0\u9192\uff0c\u65b9\u4fbf\u62a2\u8d2d</p>\r\n    {{/if}}\r\n\x3c/script>'
					);
				this.bindEventListeners()
			},
			bindEventListeners: function() {
				var c = this;
				$.Listeners.sub(this.event.sub.getDetailInfoSuccess).onsuccess(function(b) {
					c.data = b;
					if (b.product)
						$.Listeners.sub(c.event.sub.getInfoAndSkuSuccess).onsuccess(
							function(a) {
								c.sku = a;
								$.Listeners.sub("buy.button.price").onsuccess(function(f) {
									a.pcSkuData.product_price_range_mapping[b
										.product.productIdStr] ? (c.vipIcon = f
										.img,
										c.status = f.status,
										c.getSpecialPriceCB()) : $(
										"#J-cartAdd-submit, #J-dt-cart-btn, #J_stage_loan_btn"
										).addClass("ui-btn-disable");
									$.Listeners.sub(c.event.sub.sizeRenderPrice)
										.onsuccess(function() {
											c.renderAddCartBtnTxt()
										})
								})
							})
				});
				$.Listeners.sub("getProductInfo.detail.fail").onsuccess(function() {
					$("#J-cartAdd-submit, #J-dt-cart-btn, #J_stage_loan_btn").addClass(
						"ui-btn-disable")
				})
			},
			getSpecialPriceCB: function() {
				var c = this.sku,
					b;
				if (c && c.pcSkuData) {
					b = c.pcSkuData.skus;
					(c = c.pcSkuData.product_price_range_mapping[this.mid] || {}) && c.priceView &&
						(this.priceView.mid = {
							priceView: c.priceView || ""
						});
					for (var a in b)
						this.priceView.sku[b[a].msizeId] = {
							priceView: b[a].priceView || ""
						}
				}
				this.renderAddCartBtnTxt()
			},
			renderAddCartBtnTxt: function() {
				var c = this.data,
					b = this.sku,
					a = this.status,
					f = nsMerchandiseMod.selectedSize,
					d = c.product.detailStatus,
					n, l = c.product.buyMode;
				b && b.pcSkuData && b.pcSkuData.product_price_range_mapping && b.pcSkuData
					.product_price_range_mapping[c.product.productIdStr] && (l = b.pcSkuData
						.product_price_range_mapping[c.product.productIdStr].buyMode,
						n = b.pcSkuData.product_price_range_mapping[c.product.productIdStr].prepay);
				if (a && 1 == a) {
					var k = -1 != f ? this.priceView.sku[f].priceView : this.priceView.mid
					.priceView;
					k.finalPrice && k.finalPrice.price && k.comparePrice && k.comparePrice
						.priceTips && k.comparePrice.price && 7 < k.finalPrice.price.toString()
						.length && (this.vipIcon = "")
				}
				c = n ? "\u652f\u4ed8\u5b9a\u91d1" : l && 1 == l ? "\u7acb\u5373\u8d2d\u4e70" :
					"\u52a0\u5165\u8d2d\u7269\u888b";
				$("#J_detail_buy").html(e("J_buy_button_tpl", {
					detailStatus: d,
					prepay: n,
					buyMode: l,
					prepayClass: n ? "is-prepay-btn" : "",
					btnMarsValue: n ? "te_goods_buy_presale_firstpay" :
						"te_goods_buy_cart_btn",
					addCartBtnTxt: c,
					finalPrice: k && k.finalPrice ? k.finalPrice : "",
					comparePrice: k && k.comparePrice ? k.comparePrice : "",
					vipIcon: this.vipIcon
				}));
				window.mars_var = $.extend(window.mars_var, {
					ext_attr: {
						finalPrice: k && k.finalPrice ? k.finalPrice.price : "",
						finalPriceTips: k && k.finalPrice ? k.finalPrice.priceTips : "",
						comparePrice: k && k.comparePrice ? k.comparePrice.price : "",
						comparePriceTips: k && k.comparePrice ? k.comparePrice.priceTips :
							""
					}
				})
			}
		};
		h.exports = g
	}, {
		"../../../../../plugins/modules/template": 100
	}],
	44: [function(g, h, p) {
		h.exports = {
			event: {
				sub: {
					toRenderFreight: "toRenderFreight.detail",
					chooseSizeSuccess: "choose.size.success"
				}
			},
			sizeCarriage: {},
			init: function(e) {
				this.bindEventListeners()
			},
			bindEventListeners: function() {
				var e = this;
				$.Listeners.sub(this.event.sub.toRenderFreight).onsuccess(function(c) {
					c && e.getCarriageTipsCB(c)
				})
			},
			getCarriageTipsCB: function(e) {
				var c = this,
					b = e.skus;
				if (e.freightTipsMap) {
					$("#J_freight_frame").removeClass("hidden");
					for (var a in b)
						c.sizeCarriage[b[a].msizeId] = {
							freightTipsKey: b[a].freightTipsKey
						};
					c.sizeCarriage = $.extend(c.sizeCarriage, e.freightTipsMap); -
					1 != nsMerchandiseMod.selectedSize ? c.renderCarriageTips(nsMerchandiseMod
						.selectedSize) : c.renderCarriageTips(-1, e);
					$.Listeners.sub(this.event.sub.chooseSizeSuccess).onsuccess(function(a) {
						a = a.id; -
						1 != a && c.renderCarriageTips(a)
					})
				}
			},
			renderCarriageTips: function(e, c) {
				var b = "",
					a = "",
					f, d, n, l;
				if (-1 != e) {
					if (b = this.sizeCarriage[nsMerchandiseMod.selectedSize])
						b = b.freightTipsKey,
						a = this.sizeCarriage[b]
				} else
					c && c.product_price_range_mapping[nsMerchandiseMod.mid] && (b = c
						.product_price_range_mapping[nsMerchandiseMod.mid].freightTipsKey,
						c.freightTipsMap && (a = c.freightTipsMap[b]));
				a && (f = a.tips,
					d = a.description,
					n = a.nonDistribution,
					l = a.areaFreight);
				$("#J_freight_tips").html(f);
				$("#J_freightTip_des").html(d);
				1 == l ? $("#J_tab_street_name").html() || $("#J_freight_frame").addClass(
					"hidden") : $("#J_freight_frame").removeClass("hidden");
				1 == n ? ($("#J-proData-box").addClass("delivery_error"),
					$("#J-cartAdd-submit, #J-dt-cart-btn, #J_stage_loan_btn").addClass(
						"ui-btn-disable")) : ($("#J-proData-box").removeClass("delivery_error"),
					$("#J-cartAdd-submit, #J-dt-cart-btn, #J_stage_loan_btn").removeClass(
						"ui-btn-disable"));
				f ? f && 1 != l && $("#J_freight_frame").removeClass("hidden") : $(
					"#J_freight_frame").addClass("hidden");
				d || $("#J_freightTip_wrap").addClass("hidden")
			}
		}
	}, {}],
	45: [function(g, h, p) {
		var e = g("../../../../../plugins/modules/img/addHost.js"),
			c = g("../../../../../plugins/modules/imgResize/index.js"),
			b = g("../../../../../shop/addressCookie"),
			a = g("../../../../../shop/stockMod"),
			f = {
				data: {
					colorPropId: "134",
					isUseColorSelector: 0
				},
				event: {
					sub: {
						colorDetail: "colorDetail.detail",
						colorInitFinish: "colorInitFinish.finish",
						getSpuStockSuccess: "getSpuStock.success"
					},
					pub: {
						colorInitFinish: "colorInitFinish.finish"
					}
				},
				map: {
					pidToSpuId: {}
				},
				init: function() {
					this.bindEventListeners()
				},
				bindEventListeners: function() {
					var a = this;
					$.Listeners.sub(a.event.sub.colorDetail).onsuccess(function(b) {
						if (b.pcSkuData.product_price_range_mapping && b.pcSkuData.saleProps) {
							var f = b.pcSkuData,
								c = Object.keys(f.product_price_range_mapping),
								e = 0,
								m = "\u989c\u8272";
							if (1 < c.length || f.showSingleColor && 1 == f.showSingleColor)
								e = 1;
							if (f.saleProps)
								for (var q in f.saleProps)
									f.saleProps[q].id == a.data.colorPropId && (m = f.saleProps[
										q].name);
							f = a.processColorList(f);
							c = {
								colorCount: c.length,
								showColor: e,
								colorTitle: m,
								colorList: f
							};
							$("#J_detail_color").html($.Tpl("J_detail_color_tpl", c));
							12 < c.colorCount && (a.data.isUseColorSelector = 1);
							b = {
								data: b,
								pcColorData: c
							};
							$.Listeners.pub(a.event.pub.colorInitFinish).success(b)
						}
					});
					$.Listeners.sub(a.event.sub.colorInitFinish).onsuccess(function(b) {
						a.getNewStockListData(b)
					})
				},
				processColorList: function(a) {
					var b = a.product_price_range_mapping,
						f = [],
						k = window.url.b_id,
						t = window.url.m_id;
					a = this.getMidColorName(a.skus, a.saleProps);
					for (var m in b) {
						if (b.hasOwnProperty(m)) {
							var q = b[m];
							q.id = m;
							q.link = window.openhk && q.isHaiTao && 1 == q.isHaiTao ?
								"//www.vipglobal.hk/detail-" + k + "-" + m + ".html" :
								"//detail.vip.com/detail-" + k + "-" + m + ".html";
							q.icon = c(e(b[m].smallImage), 54, 69, 100);
							q.selected = t == m ? 1 : 0;
							q.name = a[m] ? a[m].value : "";
							f.push(q)
						}
						f = f.sort(function(a, b) {
							return a.sort - b.sort
						})
					}
					return f
				},
				getMidColorName: function(a, b) {
					var f = [],
						c = [],
						e;
					for (e in a)
						c.push({
							keyExplain: this.explainSkuKey(e),
							detail: a[e]
						});
					for (e in b)
						if (b[e].id == this.data.colorPropId) {
							var m = b[e].values,
								q;
							for (q in m) {
								var g = m[q].vid ? m[q].vid : "",
									h;
								for (h in c) {
									var s = c[h].keyExplain,
										u;
									for (u in s)
										s[u] == g && m[q].productId == c[h].detail.mid && c[h].detail
										.mid && m[q].productId == c[h].detail.mid && (f[c[h].detail
											.mid] = {
												value: m[q].name ? m[q].name : "",
												sort: m[q].sort ? m[q].sort : ""
											})
								}
							}
						}
					return f
				},
				explainSkuKey: function(a) {
					var b = [];
					a = a.split(";");
					for (var f in a) {
						var c = a[f].toString().split(":");
						1 < c.length && (b[c[0]] = c[1])
					}
					return b
				},
				rendorColor: function(a) {
					var b = data.sold_out,
						f = data.sold_chance.split(",");
					a = data.sold_out.split(",");
					for (var c = 0; c < f.length; c++)
						b = b.replace(f[c], "");
					c = "#J-colorItem-" + b.replace(/,/g, ",#J-colorItem-");
					b = "#J-colorItem-" + data.sold_chance.replace(/,/g, ",#J-colorItem-");
					if (_this.data.isUseColorSelector) {
						for (c = 0; c < f.length; c++)
							b = $("#J-colorItem-" + f[c]),
							b.html(b.html() + " - \u6709\u673a\u4f1a");
						for (f = 0; f < a.length; f++)
							b = $("#J-colorItem-" + a[f]),
							b.html(b.html() + " - \u5df2\u552e\u5b8c")
					} else
						$(c).addClass("color-soldOut"),
						$(b).addClass("color-chance")
				},
				getNewStockListData: function(d) {
					d = d.pcColorData.colorList;
					if (0 < d.length) {
						var f = [],
							c;
						for (c in d)
							f.push(d[c].id);
						c = {
							mids: f,
							is_old: this.getUserType()
						};
						1 == VIPSHOP.isAreaStock && (c.areaId = b.getListAreaId());
						a.getStock({
							paramData: c,
							jsonpCallback: "stock_list",
							code: "ajax_stock_list_ajax_error",
							cb: this.getStockListDataCB
						})
					}
				},
				getStockListDataCB: function(a) {
					var b = f;
					if (a.sold_out) {
						for (var c = a.sold_out, e = a.sold_chance.split(","), t = a.sold_out.split(
								","), m = 0; m < e.length; m++)
							c = c.replace(e[m], "");
						m = "#J-colorItem-" + c.replace(/,/g, ",#J-colorItem-");
						a = "#J-colorItem-" + a.sold_chance.replace(/,/g, ",#J-colorItem-");
						if (b.data.isUseColorSelector) {
							for (m = 0; m < e.length; m++)
								a = $("#J-colorItem-" + e[m]),
								a.html(a.html() + " - \u6709\u673a\u4f1a");
							for (e = 0; e < t.length; e++)
								a = $("#J-colorItem-" + t[e]),
								a.html(a.html() + " - \u5df2\u552e\u5b8c")
						} else
							$(m).addClass("color-soldOut"),
							$(a).addClass("color-chance")
					}
					b.setSizeSelector()
				},
				getUserType: function() {
					var a = 0;
					VIPSHOP.Member.rule._oldUser = ["c", "c1", "c3"];
					VIPSHOP.Member.is("_oldUser", "suc") && (a = 1);
					return a
				},
				setSizeSelector: function() {
					this.data.isUseColorSelector && $("#J_multi_color_selector").Selector({
						clone: "#J-muli_color-item",
						classPre: "selector",
						defTxt: $("#J_multi_color_selector option.color-selected").text(),
						evtChoose: function(a) {
							a = $(a.target);
							location.href = a.data("val")
						}
					})
				}
			};
		h.exports = f
	}, {
		"../../../../../plugins/modules/img/addHost.js": 98,
		"../../../../../plugins/modules/imgResize/index.js": 99,
		"../../../../../shop/addressCookie": 111,
		"../../../../../shop/stockMod": 121
	}],
	46: [function(g, h, p) {
		var e = g("../../../../../plugins/modules/template");
		h.exports = {
			consumerTips: "",
			expiryTips: "",
			event: {
				sub: {
					toRenderConsumerTips: "render.consumerTips",
					expiryTips: "render.expiryTips"
				}
			},
			init: function(c) {
				this.bindEventListeners()
			},
			bindEventListeners: function() {
				var c = this;
				$.Listeners.sub(c.event.sub.toRenderConsumerTips).onsuccess(function(b) {
					c.consumerTips = b.product.consumerTips;
					$.Listeners.sub(c.event.sub.expiryTips).onsuccess(function(a) {
						c.expiryTips = a.expiryTips;
						c.renderConsumerTips()
					})
				})
			},
			renderConsumerTips: function() {
				var c = "";
				this.expiryTips && 0 < $(".J_dc_table").length && (c = "#J-detailCon");
				(this.consumerTips || this.expiryTips) && $(".J_consumer_tips_other").html(e(
					"J_consumer_tips_tpl", {
						consumerTips: this.consumerTips || "",
						expiryTips: this.expiryTips || "",
						expiryUrl: c || ""
					})).removeClass("hidden");
				$(".J_expiryTips").click(function() {
					$(".J_dc_info").addClass("dc-table-more");
					$(".J_dc_up").removeClass("hidden");
					$(".J_dc_more").addClass("hidden")
				})
			}
		}
	}, {
		"../../../../../plugins/modules/template": 100
	}],
	47: [function(g, h, p) {
		h.exports = {
			event: {
				sub: {
					initCrumbs: "initCrumbs.detail"
				}
			},
			init: function() {
				this.bindEventListeners()
			},
			bindEventListeners: function() {
				$.Listeners.sub(this.event.sub.initCrumbs).onsuccess(function(e) {
					if (e.product) {
						var c = e.product.brandIdStr;
						e.pcBrandInfo.brands && e.pcBrandInfo.brands[c] && e.pcBrandInfo
							.brands[c].brandType && 3 != e.pcBrandInfo.brands[c]
							.brandType && (e = {
									link: "//list.vip.com/" + c + ".html",
									b_name: e.product.brandStoreName,
									m_name: e.product.title
								},
								$("#J_detail_crumbs").html($.Tpl("J_script_detail_crumbs",
									e)))
					}
				})
			}
		}
	}, {}],
	48: [function(g, h, p) {
		var e = g("../model/modCustomerService.js");
		h.exports = {
			event: {
				sub: {
					initCustomerService: "initCustomerService.detail",
					fetchCustomerService: "fetchCustomerService.Success"
				}
			},
			init: function() {
				this.bindEventListeners()
			},
			bindEventListeners: function() {
				var c = this;
				$.Listeners.sub(c.event.sub.initCustomerService).onsuccess(function(b) {
					e.init()
				});
				$.Listeners.sub(c.event.sub.fetchCustomerService).onsuccess(function(b) {
					if (b.vendorCsDetails && 0 < b.vendorCsDetails.length) {
						var a = b.vendorCsDetails[0],
							f = "",
							d = c.isShow(a, b.pcServerTime, a.isOnlineActived, "online"),
							e = c.isShow(a, b.pcServerTime, a.isTelActived, "tel"),
							f = "" != b.pcStoreId ?
							"https://mchat-front.vip.com/chat/webchat.html?productid=" + b
							.pcProductId + "&storeid=" + b.pcStoreId + "&brandid=" + b
							.pcBrandId + "&entranceType=PC1" : 1 == b.isVipSale ?
							"https://400.vip.com/h5/index.page?channel=0&entrance=2&advisoryKind=3&productId=" +
							b.pcProductId :
							"https://400.vip.com/chat/chatAction.action?scheduleid=" + b
							.pcBrandId + "&productid=" + b.pcProductId;
						b = {
							csType: b.csType ? b.csType : "",
							oneCustomer: a,
							isShowOnline: d,
							isShowTel: e,
							serviceLink: f,
							telTitle: "" == b.pcStoreId ?
								"\u5408\u4f5c\u5546\u5bb6\u7535\u8bdd" :
								"\u54c1\u724c\u5546\u7535\u8bdd"
						};
						(e || d) && $("#J_detail_customerService").html($.Tpl(
							"J_script_detail_customerService", b))
					}
				})
			},
			isShow: function(c, b, a, f) {
				var d = 0;
				if (1 != a)
					return d;
				"tel" == f ? (a = c.telStartTime,
					c = c.telEndTime) : (a = c.onlineStartTime,
					c = c.onlineEndTime);
				b = new Date(1E3 * b);
				f = b.getFullYear() + "-";
				var e = (10 > b.getMonth() + 1 ? "0" + (b.getMonth() + 1) : b.getMonth() + 1) + "-",
					l = b.getDate() + " ";
				c = new Date(f + e + l + c);
				b >= new Date(f + e + l + a) && b <= c && (d = 1);
				return d
			}
		}
	}, {
		"../model/modCustomerService.js": 34
	}],
	49: [function(g, h, p) {
		h.exports = {
			event: {
				sub: {
					deliver: "deliver.detail"
				}
			},
			init: function(e) {
				this.bindEventListeners()
			},
			bindEventListeners: function() {
				$.Listeners.sub(this.event.sub.deliver).onsuccess(function(e) {
					if (e && e.product) {
						var c = {
							isPreSale: e.product.isPreSale,
							preSaleTips: e.product.preSaleTips ? e.product.preSaleTips :
								""
						};
						0 == e.product.isGift && ($("#J_product_delivery").html($.Tpl(
								"J_product_delivery_tpl", c)),
							window.nsAddress && window.nsAddress.init())
					}
				})
			}
		}
	}, {}],
	50: [function(g, h, p) {
		var e = g("../../sizeTable/sizeTable.js"),
			c = g("../model/modDetailTab.js"),
			b = g("../../../../../plugins/modules/img/addHost.js");
		h.exports = {
			event: {
				sub: {
					getBrandInfoSuccess: "getBrandInfo.detail.success",
					fetchCustomerService: "fetchCustomerService.Success"
				}
			},
			init: function() {
				this.bindEventListeners()
			},
			bindEventListeners: function() {
				var a = this;
				$.Listeners.sub(a.event.sub.getBrandInfoSuccess).onsuccess(function(b) {
					b.product && (a.init3C(b.product),
						a.initSizeTable(b.product),
						a.initPropety(b.product),
						a.initImage(b.product),
						a.initSaleService(b.product),
						a.initOxoDesc(b.product),
						$.Listeners.sub(a.event.sub.fetchCustomerService).onsuccess(
							function(d) {
								a.initQuestion(b.product, d)
							}),
						a.initService(b.product),
						a.initAboutUs(b.product))
				})
			},
			init3C: function(a) {
				a = a.cccCertNo ? a.cccCertNo : "";
				var b = {
					certNums: a
				};
				a && $("#J_certification_detail").html($.Tpl("J_certification_detail_tpl", b))
			},
			initSizeTable: function(a) {
				a.sizeTableId && "" != a.sizeTableId && (a = {
						canReturn: a.canReturn ? a.canReturn : 0
					},
					$("#J_sizetable_detail").html($.Tpl("J_sizetable_detail_tpl", a))
					.removeClass("hidden"),
					e.init())
			},
			initPropety: function(a) {
				if (a.props && 0 < a.props.length) {
					var b = a.props;
					a.merchandiseSn && "" != a.merchandiseSn && b.push({
						name: "\u5546\u54c1\u7f16\u7801",
						value: a.merchandiseSn
					});
					a = {
						propety: b,
						proLen: b.length
					};
					$("#J_dc_Detail").html($.Tpl("J_dc_Detail_tpl", a));
					c.initPropety()
				}
			},
			initAuthorize: function(a) {
				if (a.commitmentImages) {
					var f = a.commitmentImages,
						d = "",
						c;
					for (c in f)
						"brandauth" == f[c].type && (d = b(f[c].imageUrl));
					c = f = "";
					a.TUV && (f = b(a.TUV.image),
						c = a.TUV.link);
					d && (a = {
							brand_authorization: d,
							tuvImg: f,
							tuvLink: c
						},
						$("#J_dc_authorization").html($.Tpl("J_dc_authorization_tpl", a)))
				}
			},
			initImage: function(a) {
				if (a.detailImages) {
					var f = a.detailImages,
						d;
					for (d in f)
						f[d].imageUrl = b(f[d].imageUrl);
					f = {
						detailImages: f
					};
					$("#J_dc_image").html($.Tpl("J_dc_image_tpl", f));
					this.initAuthorize(a);
					$(".J-mer-bigImg").each(function(a, b) {
						b.onload = function() {
							$(b).closest(".img-6xx-bg").addClass("bg-height")
						}
					})
				}
			},
			initSaleService: function(a) {
				a.itemDetail && a.itemDetail.saleService && (a = {
						saleService: a.itemDetail.saleService
					},
					$("#J_dc_saleService").html($.Tpl("J_dc_saleService_tpl", a)))
			},
			initOxoDesc: function(a) {},
			initQuestion: function(a, b) {
				var d = {},
					c;
				b.vendorCsDetails && 0 < b.vendorCsDetails.length && (d = b.vendorCsDetails[0]);
				var e = a.vendorCode ? a.vendorCode : "",
					d = d.isOnlineActived ? d.isOnlineActived : "";
				c = 1E4;
				var k = a.brandIdStr;
				1 == a.send_by_vendor && (c = a.vendorCode);
				c = "cih_vendornum=" + c;
				var t = a.brandStoreSn ? a.brandStoreSn : "";
				"" != t && (c += "&cih_brand_store_sn=" + t);
				b.csType && "" != b.csType && (c += "&cih_cs_type=" + b.csType);
				c += "&cih_schedule_code=" + k + "&cih_schedule_vendornum=" + e +
					"&cih_isvendor_online_actived=" + d + "&cih_schedule_isonsale=" + (0 == a
						.detailStatus ? 1 : 0) + "&cih_productid=" + a.productIdStr;
				e = {
					urlParam: c
				};
				$("#J-FW-question").html($.Tpl("J-FW-question_tpl", e))
			},
			initService: function(a) {
				a.saleServiceList && 0 < a.saleServiceList.length && a.saleServiceList[0].name && a
					.saleServiceList[0].value ? ($(".J_service_wrap").removeClass("hidden"),
						$(".J_saleServiceList").removeClass("hidden"),
						$(".J-saleServiceList_wrap").html($.Tpl("J-saleServiceList-tpl", {
							list: a.saleServiceList
						}))) : $(".J_saleServiceList").addClass("hidden")
			},
			initAboutUs: function(a) {
				a = {
					canReturn: a.canReturn ? a.canReturn : 0
				};
				$("#J-FW-aboutUs").html($.Tpl("J-FW-aboutUs_tpl", a));
				c.initAboutUs()
			}
		}
	}, {
		"../../../../../plugins/modules/img/addHost.js": 98,
		"../../sizeTable/sizeTable.js": 70,
		"../model/modDetailTab.js": 35
	}],
	51: [function(g, h, p) {
		var e = g("../../../../../plugins/modules/img/addHost.js");
		h.exports = {
			event: {
				sub: {
					initFly: "initFly.detail"
				}
			},
			init: function() {
				this.bindEventListeners()
			},
			bindEventListeners: function() {
				$.Listeners.sub(this.event.sub.initFly).onsuccess(function(c) {
					c.product && (c = c.product,
						c.previewImages && c.previewImages[0] && (c = {
								img: e(c.previewImages[0].imageUrl),
								bransStoreSn: c.brandStoreSn ? c.brandStoreSn : ""
							},
							$("#J_detail_fly_add").html($.Tpl("J_detail_fly_add_tpl",
								c))))
				})
			}
		}
	}, {
		"../../../../../plugins/modules/img/addHost.js": 98
	}],
	52: [function(g, h, p) {
		h.exports = {
			event: {
				sub: {
					initInfoMation: "initInfoMation.detail"
				}
			},
			init: function() {
				this.bindEventListeners()
			},
			bindEventListeners: function() {
				$.Listeners.sub(this.event.sub.initInfoMation).onsuccess(function(e) {
					if (e.product) {
						var c = e.brand,
							b = e.product;
						e = {
							countdown_type: e.pcBrandInfo.brands[e.product.brandIdStr]
								.countdown_type,
							detailStatus: b.detailStatus,
							b_name: b.brandStoreName,
							isHaiTao: b.isHaiTao,
							country_flag: c.country_flag ? c.country_flag :
								"//shop.vipstatic.com/img/te/global-flag-detail-hash-89462997.png",
							country_name: c.country_name ? c.country_name :
								"\u6d77\u5916\u76f4\u91c7 \u6b63\u54c1\u4fdd\u8bc1",
							brand_store_sn: b.brandStoreSn,
							send_by_vendor: b.send_by_vendor,
							dutyfree: b.dutyfree,
							isPreSale: b.isPreSale,
							longTitle: b.longTitle,
							channelFeature: b.channelFeature ? b.channelFeature : "",
							pointDescribe: b.pointDescribe ? b.pointDescribe : ""
						};
						e.brand_store_sn && "10033984" == e.brand_store_sn && (e
							.brand_store_sn = "",
							e.b_name = "");
						$("#J_detail_info_mation").html($.Tpl("J_script_detail_infomation",
							e))
					}
				})
			}
		}
	}, {}],
	53: [function(g, h, p) {
		var e = g("../../../../../plugins/modules/img/addHost.js"),
			c = g("../../../../../plugins/modules/imgResize/index.js"),
			b = g("../model/infoPic.js");
		h.exports = {
			event: {
				sub: {
					initInfoPic: "initInfoPic.detail"
				},
				pub: {
					initInfoPicFinish: "initInfoPicFinish.detail"
				}
			},
			init: function() {
				$("body").append(
					'<script type="text/html" id="J_detail_infoPic_tpl">\r\n    {{if floatingView}}\r\n    <div class="imgIcon-wrap">\r\n        {{each floatingView.items as item}}\r\n        <div class="floatingView">\r\n            <img src = \'{{item.icon}}\' class="imgIcon">\r\n            <div class="imgIcontitle {{if item.subTitle}}two-row{{/if}}">\r\n                <span class="mainTitle">{{item.mainTitle}}</span>\r\n                {{if item.subTitle}}\r\n                <span class="subTitle">{{item.subTitle}}</span>\r\n                {{/if}}\r\n            </div>\r\n        </div>\r\n        {{/each}}\r\n    </div>\r\n    {{/if}}\r\n    <span class="sold-tag hidden" id="J-mer-saleTag"></span>\r\n    <div class="pic-sliderwrap">\r\n        {{if mData.shortVideoUrl != \'\'}}\r\n            <div class="show-midpic short-video-wrapper">\r\n                <video id="J_video_source" class="video-js video-source vip-skin-design vjs-big-play-centered vjs-show-big-play-button-on-pause" webkit-playsinline="webkit-playsinline" playsinline="playsinline" preload="true" src="{{mData.shortVideoUrl}}" type="video/mp4">\r\n                    <source src="{{mData.shortVideoUrl}}" type="video/mp4"></source>\r\n                    <p class="vjs-no-js"> \u60a8\u7684\u6d4f\u89c8\u5668\u4e0d\u652f\u6301 HTML 5 Video \u6807\u7b7e\uff0c\u8bf7\u5347\u7ea7\u6d4f\u89c8\u5668\u3002</p>\r\n                </video>\r\n            </div>\r\n        {{/if}}\r\n\r\n        {{each picData as item itmeIndex}}\r\n            <div class="show-midpic {{if itmeIndex !=0 || mData.shortVideoUrl!= \'\'}}hidden{{/if}} {{mData.zoomPicCls}}">\r\n                <a href="{{item.b_img}}" class="J-mer-bigImgZoom">\r\n                      <img class="slide-mid-pic lazy" src="{{item.s_img}}" width="{{mData.imgW}}" height="{{mData.imgH}}" data-original="{{item.s_img}}" alt="" />\r\n                </a>\r\n                <em class="icon-a"></em>\r\n            </div>\r\n        {{/each}}          \r\n    </div>        \r\n    <div class="pic-sliderwrap-corner-icon f-hide" id="J_surpriseSprice_icon{{mData.midTag}}"></div>       \r\n    <span class="btn-waitlist" mars_sead="te_goods_buy_add_waitlist" id="J-btn-waitlist"></span>\r\n    {{if mData.needScroll == 1}}\r\n        <div class="pic-slider" id="J-sImgSlide-wrap">\r\n            <div id="J-sImg-wrap" class="pic-slider-wrap">\r\n                <div id = "J-img-content">\r\n                    {{if mData.shortVideoUrl != \'\'}}\r\n                    <div class="pic-slider-items J-picSlider-items" data-index="{{0}}" mars_sead="m_te_goods_buy_pic{{0}}_img">\r\n                        <span class="vjs-icon-play small-image-play-icon"></span>\r\n                        <img src="{{mData.coverImage.s_img}}" data-original="{{mData.coverImage.s_img}}" height="62"  alt="" class="J-mer-smallImg lazy" />\r\n                    </div>\r\n                    {{/if}}\r\n                   {{each picData as item countIndex}}\r\n                        <div class="pic-slider-items J-picSlider-items" data-index="{{countIndex+1}}" mars_sead="m_te_goods_buy_pic{{item.count}}_img">\r\n                        <img src="{{item.s_img}}" data-original="{{item.s_img}}" height="62"  alt="" class="J-mer-smallImg lazy" />\r\n                        </div>\r\n                    {{/each}}\r\n                </div>\r\n            </div>\r\n            <span href="###" role="button" class="ui-paging-icon-btn icon-btn-prev J-slider-lef">\r\n                <i class="vipFont i-hv">&#xe619;</i>\r\n            </span>\r\n            <span href="###" role="button" class="ui-paging-icon-btn icon-btn-next J-slider-rig">\r\n                 <i class="vipFont i-hv">&#xe61b;</i>\r\n            </span>\r\n        </div>\r\n    {{/if}}\r\n\x3c/script>'
					);
				this.bindEventListeners()
			},
			bindEventListeners: function() {
				var a = this,
					f = location.href.split("-")[2].split(".")[0];
				$.Listeners.sub(a.event.sub.initInfoPic).onsuccess(function(d) {
					if (d.product) {
						if (d.pcSkuData && d.pcSkuData.product_price_range_mapping && d
							.pcSkuData.product_price_range_mapping[f])
							var n = d.pcSkuData.product_price_range_mapping[f]
								.floatingView ? d.pcSkuData.product_price_range_mapping[f]
								.floatingView : "";
						d = d.product;
						var l = "420",
							k = "420",
							t = "";
						"s" != d.rectangleType && ("h" == d.rectangleType ? (l = "420",
							k = "243.5",
							t = "is-beauty-original") : (l = "332",
							k = "420"));
						var m = d.coverImage ? e(d.coverImage) : "",
							l = {
								mData: {
									shortVideoUrl: d.shortVideoUrl ? e(d.shortVideoUrl) :
										"",
									mid: d.productIdStr,
									midTag: "{" + d.productIdStr + "}",
									needScroll: 0,
									imgW: l,
									imgH: k,
									zoomPicCls: t,
									coverImage: {
										s_img: c(m, 420, 420, 90),
										b_img: m
									}
								}
							},
							k = d.previewImages;
						if (void 0 !== k && 1 < k.length || void 0 !== k && 0 < k.length &&
							"" != d.shortVideoUrl)
							l.mData.needScroll = 1;
						t = [];
						if (k)
							for (var q in k)
								m = e(k[q].imageUrl),
								m = {
									b_img: m,
									s_img: c(m, 420, 420, 90),
									count: q
								},
								t.push(m);
						l.picData = t;
						l.floatingView = n;
						$("#J-mer-ImgReview").html($.Tpl("J_detail_infoPic_tpl", l));
						5 < $(".J-picSlider-items").length && $("#J-sImgSlide-wrap")
							.Switchable({
								panelCls: $("#J-img-content"),
								pervCls: $(".J-slider-lef"),
								nextCls: $(".J-slider-rig"),
								setChildWidth: 55,
								setChildHeight: 62,
								effect: "slideX",
								visiNum: 5,
								viewNum: 5,
								firstCls: "icon-btn-disable",
								lastCls: "icon-btn-disable"
							}).addClass("hasImageSlider");
						$.Listeners.pub(a.event.pub.initInfoPicFinish).success(d);
						b.init()
					}
				});
				$.Listeners.sub("initInfoPicFinish.detail").onsuccess(function(a) {
					"h" == a.rectangleType ? $("img.slide-mid-pic").height(243.5) : "v" == a
						.rectangleType && $("img.slide-mid-pic").height(420)
				})
			}
		}
	}, {
		"../../../../../plugins/modules/img/addHost.js": 98,
		"../../../../../plugins/modules/imgResize/index.js": 99,
		"../model/infoPic.js": 33
	}],
	54: [function(g, h, p) {
		h.exports = {
			event: {
				sub: {
					initMerchandiseSn: "initMerchandiseSn.detail"
				}
			},
			init: function() {
				this.bindEventListeners()
			},
			bindEventListeners: function() {
				$.Listeners.sub(this.event.sub.initMerchandiseSn).onsuccess(function(e) {
					e && e.product && (e = {
							merchandiseSn: e.product.merchandiseSn
						},
						$("#J_detail_barCode").html($.Tpl("J_script_detail_barCode", e))
						)
				})
			}
		}
	}, {}],
	55: [function(g, h, p) {
		var e = g("../../../../../plugins/modules/template");
		h.exports = {
			consumerTips: "",
			expiryTips: "",
			event: {
				sub: {
					mpDelay: "mp.delay"
				}
			},
			init: function(c) {
				this.bindEventListeners()
			},
			bindEventListeners: function() {
				var c = this;
				$.Listeners.sub(c.event.sub.mpDelay).onsuccess(function(b) {
					if (b.pcSkuData && void 0 !== b.pcSkuData.product_price_range_mapping[b
							.product.productIdStr] && void 0 !== b.pcSkuData
						.product_price_range_mapping[b.product.productIdStr]
						.announcementKey && void 0 !== b.pcSkuData.announcement) {
						var a = b.pcSkuData.product_price_range_mapping[b.product
							.productIdStr].announcementKey;
						void 0 !== b.pcSkuData.announcement[a] && c.renderMpDelay(b
							.pcSkuData.announcement[a])
					}
				})
			},
			renderMpDelay: function(c) {
				c && $(".J_mp_delay_tpl_other").html(e("J_mp_delay_tpl", {
					tips: c.tips
				})).removeClass("hidden")
			}
		}
	}, {
		"../../../../../plugins/modules/template": 100
	}],
	56: [function(g, h, p) {
		h.exports = {
			event: {
				sub: {
					oxoMode: "oxoMode.detail"
				}
			},
			init: function() {
				this.bindEventListeners()
			},
			bindEventListeners: function() {
				$.Listeners.sub(this.event.sub.oxoMode).onsuccess(function(e) {
					if (e.product && e.brand && e.brand.oxo_style && e.product.saleStyle &&
						e.product.isCjcLarge) {
						var c = e.brand.oxo_style,
							b = e.product.isCjcLarge;
						19 != e.product.saleStyle || 2 == c || b || $("#J_oxoMode_detail")
							.html($.Tpl("J_oxoMode_detail_tpl"))
					}
				})
			}
		}
	}, {}],
	57: [function(g, h, p) {
		var e = g("../../../../../plugins/modules/template");
		h.exports = {
			data: {
				priceData: {},
				prepayIdArr: []
			},
			event: {
				sub: {
					initPrepayPrice: "initPrepayPrice.detail",
					toChangePrepayForBuyNum: "toChangePrepayPrice.detail",
					toRenderPrepayPrice: "toRenderPrepayPrice.detail",
					prepayPrice: "prpay.price"
				}
			},
			init: function(c) {
				this.bindEvent();
				this.bindEventListeners()
			},
			bindEvent: function() {
				$(document).on("mouseenter", "#J-price-detail, #J-prepayLineChart", function() {
					$(this).addClass("z-ui-tooltips-in")
				}).on("mouseleave", "#J-price-detail, #J-prepayLineChart", function() {
					$(this).removeClass("z-ui-tooltips-in")
				})
			},
			bindEventListeners: function() {
				var c = this;
				$.Listeners.sub(c.event.sub.prepayPrice).onsuccess(function(b) {
					$.Listeners.sub(c.event.sub.initPrepayPrice).onsuccess(function(a) {
						c.processPrice(a.data);
						c.renderDom({
							priceView: b,
							prepayId: a.prepayId || 0,
							num: a.num,
							isPrepayPriceSuff: a.isPrepayPriceSuff
						})
					})
				});
				$.Listeners.sub(c.event.sub.prepayPrice).onsuccess(function(b) {
					$.Listeners.sub(c.event.sub.toRenderPrepayPrice).onsuccess(function(a) {
						c.renderDom({
							priceView: b,
							prepayId: a.prepayId || 0,
							isPrepayPriceSuff: a.isPrepayPriceSuff
						})
					})
				});
				$.Listeners.sub(c.event.sub.toChangePrepayForBuyNum).onsuccess(function(b) {
					c.changePrepayDepositTxt(b)
				})
			},
			renderDom: function(c) {
				var b = this,
					a = this.data.priceData[c.prepayId] || this.data.priceData[this.data
						.prepayIdArr[0]];
				a.salePrice = c.priceView.salePrice;
				if (void 0 === c.priceView.bgImg || "" == c.priceView.bgImg)
					c.priceView.bgImg =
					"//b.appsimg.com/upload/momin/2020/08/19/22/1597801542667.png";
				a.priceView = c.priceView;
				$("#J_price_mod").html(e("J_prepayPrice_template", a));
				$("#J_prepay_steps").html($.Tpl("J_prepayStep_template", a));
				$(".J_price-loadding").addClass("hidden");
				"1" == nsMerchandiseMod.sale_style_global && $("#J-price-detail").removeClass(
					"hidden");
				setTimeout(function() {
					c.num && b.changePrepayDepositTxt({
						num: c.num,
						prepayId: c.prepayId
					})
				}, 10)
			},
			processPrice: function(c, b) {
				var a = {},
					f;
				for (f in c.prepay_price_mapping) {
					var d = c.prepay_price_mapping[f],
						e = 1E3 * d.items[0].pay_time_to,
						l = 1E3 * d.items[1].pay_time_from,
						k = 1E3 * d.items[1].pay_time_to,
						t = "",
						m = "",
						q = "",
						g = "",
						h = "",
						s = "",
						u = "",
						u = $(".J-pro-num-txt").html();
					this.data.prepayIdArr.push(f);
					t = this.timeTransfer(e) + "\u622a\u6b62";
					m = this.timeTransfer(l) + "-" + this.timeTransfer(k);
					q = this.timeFormat(e);
					g = this.timeFormat(l);
					h = this.timeFormat(k);
					s = parseFloat(d.first_item_amount_calc) * u + "";
					u = parseFloat(d.last_item_amount_calc) * u + "";
					a[f] = {
						first_pay_time_to: t,
						last_pay_time_from: m,
						first_pay_time_to_step: q,
						last_pay_time_from_step: g,
						last_pay_time_to_step: h,
						prepayTotal: s,
						finalMoneyTotal: u,
						first_item_amount_calc: d.first_item_amount_calc,
						last_item_amount_calc: d.last_item_amount_calc
					}
				}
				this.data.priceData = a
			},
			timeTransfer: function(c) {
				c = new Date(c);
				var b = c.getMonth() + 1,
					a = c.getDate(),
					f = this.timeToStr(c.getHours()),
					d = this.timeToStr(c.getMinutes());
				return b + "\u6708" + a + "\u65e5\uff08" +
					"\u5468\u65e5 \u5468\u4e00 \u5468\u4e8c \u5468\u4e09 \u5468\u56db \u5468\u4e94 \u5468\u516d"
					.split(" ")[c.getDay()] + "\uff09" + f + ":" + d
			},
			timeFormat: function(c, b) {
				var a = new Date(c),
					f = a.getFullYear(),
					d = a.getMonth() + 1,
					e = a.getDate(),
					l = this.timeToStr(a.getHours()),
					k = this.timeToStr(a.getMinutes()),
					a = this.timeToStr(a.getSeconds());
				b = b ? b : ".";
				return f + b + d + b + e + " " + l + ":" + k + ":" + a
			},
			timeToStr: function(c) {
				c = "00" + c;
				return c.substring(c.length - 2)
			},
			changePrepayDepositTxt: function(c) {
				var b = $(".J_prepay_btn_amount"),
					a = $(".J_prepay_first_money"),
					f = $(".J_prepay_final_money"),
					d = 0,
					e = 0,
					e = this.data.priceData[c.prepayId];
				c = c.num;
				e && (1 < c ? b.html("(" + c + "\u4ef6)") : b.html(""),
					d = parseFloat(e.first_item_amount_calc) * c + "",
					e = parseFloat(e.last_item_amount_calc) * c + "",
					f.html("&yen;" + e),
					a.html("&yen;" + d))
			}
		}
	}, {
		"../../../../../plugins/modules/template": 100
	}],
	58: [function(g, h, p) {
		var e = g("../../../../../plugins/modules/template");
		g("../../../../../plugins/modules/imgResize/index.js");
		var c = g("../../../../../plugins/pcDocument.js");
		g = {
			mid: location.href.split("-")[2].split(".")[0],
			userType: 1,
			pmsData: null,
			vipPriceData: null,
			sell_price: "",
			market_price: "",
			$pmsContent: $("#J-pmsContent"),
			priceView: {
				sku: {},
				mid: {}
			},
			fallingTips: {
				sku: {},
				mid: {}
			},
			priceChartData: {
				sku: {},
				mid: {}
			},
			panelView: {
				sku: {},
				mid: {}
			},
			price: {},
			sellPriceTags: {
				sku: {},
				mid: {}
			},
			detailStatus: "",
			isHaiTao: "",
			documentContent98: "",
			tipsItem: {
				sku: {},
				mid: {}
			},
			svipTips: "",
			curSizeId: "",
			skuArr: [],
			extraPmsTips: [],
			isExtraPmsTipsInited: !1,
			highlightBgImg1: "",
			highlightBgImg2: "",
			event: {
				pub: {
					prepayPrice: "prpay.price"
				},
				sub: {
					initRenderPrice: "initRenderPrice.detail",
					sizeRenderPrice: "sizeRenderPrice.detail",
					detailV5: "detailV5"
				}
			},
			init: function() {
				this.bindCustomEvent()
			},
			bindCustomEvent: function() {
				var b = this;
				$.Listeners.sub(b.event.sub.detailV5).onsuccess(function(a) {
					b.detailStatus = a.product.detailStatus;
					b.isHaiTao = a.product.isHaiTao;
					b.highlightBgImg1 = a.uiSettings.highlightBgImg1;
					b.highlightBgImg2 = a.uiSettings.highlightBgImg2;
					b.price.salePrice = {
						salePrice: a.product.min_vipshop_price,
						saleMarketPrice: a.product.minMarketPriceOfMinSkuVipshopPrice,
						salePriceSuff: a.product.vipshopPriceSuff,
						saleDiscount: a.product.agio
					};
					$.Listeners.sub("getProductInfo.detail.fail").onsuccess(function() {
						b.renderPrice()
					});
					$.Listeners.sub(b.event.sub.initRenderPrice).onsuccess(function(a) {
						a.product_price_range_mapping[b.mid] ? (b.getTipsMapCB(a),
							b.getSpecialPriceCB(a),
							b.redendPricePart(),
							$.Listeners.sub("getDocumentContent.success")
							.onsuccess(function(a) {
								b.documentContent98 = a.data || ""
							}),
							$.Listeners.sub(b.event.sub.sizeRenderPrice)
							.onsuccess(function() {
								b.redendPricePart()
							})) : b.renderPrice()
					})
				});
				$.Listeners.sub("render.coupons.complete").onsuccess(function() {
					b.extraPmsTips.length && !b.isExtraPmsTipsInited && ($(
							"#J-pms-sider-wrap").append($.Tpl(
							"J-pms-additional-tips-sider", {
								data: b.extraPmsTips
							})).removeClass("hidden"),
						b.isExtraPmsTipsInited = !0)
				})
			},
			pmsSlideEventer: function() {
				var b = this;
				3 < $("#J-pmsContent dl").length ? (b.$pmsContent.parent().addClass(
					"pbox-pms-more"),
					$("#J-pms-moreact").on("click", function() {
						b.$pmsContent.parent().removeClass("pbox-pms-more").addClass(
							"pbox-pms-absolute")
					}),
					$("#J-pms-packup").on("click", function() {
						b.$pmsContent.parent().removeClass("pbox-pms-absolute").addClass(
							"pbox-pms-more")
					}),
					$(".J-sizeID").on("click", function() {
						b.$pmsContent.parent().removeClass("pbox-pms-absolute").addClass(
							"pbox-pms-more")
					})) : b.$pmsContent.parent().removeClass("pbox-pms-more")
			},
			startCountDown: function(b) {
				var a = b / 1E3,
					f;
				f = VIPSHOP.Time.fn_countDown([a]);
				if ("-" != f.day || "-" != f.hour || "-" != f.min || "-" != f.sec)
					$(".warmup-time-wrap").addClass("warmup-time-price"),
					$("#J-warmup-time").html($.Template({
						templateElement: $("#J_warmup_time_tp1"),
						replace: null
					}).process()),
					!$(".J_warmup") || 99 < f.day || (1 > f.day ? ($(".J_warmup_time_countDown")
						.removeClass("hidden"),
						$.Listeners.sub("interval.1000").onsuccess(function() {
							f = VIPSHOP.Time.fn_countDown([a]);
							$(".J-warmup-time-H").html(f.hour);
							$(".J-warmup-time-M").html(f.min);
							$(".J-warmup-time-S").html(f.sec)
						})) : 1 <= f.day && 2 > f.day ? (te = VIPSHOP.Time.get(b, "H:m"),
						$(".J_warmup_time_tomorrow").removeClass("hidden"),
						$(".J-warmup-time-T").html(te + "0")) : ($(".J_warmup_time_static")
						.removeClass("hidden"),
						$(".J-warmup-time-D").html(f.day),
						$(".J-warmup-time-H").html(f.hour)))
			},
			countDown: function(b) {
				var a = $(".J_sp_time"),
					f;
				0 < a.length && (f = VIPSHOP.Time.fn_countDown(b),
					99 < f.day || (1 > f.day && b ? ($(".J_sp_time_countDown").removeClass(
								"hidden"),
							$.Listeners.sub("interval.1000").onsuccess(function() {
								f = VIPSHOP.Time.fn_countDown(b);
								$(".J-sp-time-H").html(f.hour);
								$(".J-sp-time-M").html(f.min);
								$(".J-sp-time-S").html(f.sec)
							})) : ($(".J_sp_time_static").removeClass("hidden"),
							$(".J-sp-time-D").html(f.day),
							a.find(".J-sp-time-H").html(f.hour)),
						(0 < f.day || 0 < f.hour || 0 < f.min || 0 < f.sec) && a.removeClass(
							"hidden")))
			},
			getSpecialPriceCB: function(b) {
				var a, f = b.product_price_range_mapping[this.mid] || {};
				if (void 0 == b || "" == b || $.isEmptyObject(b))
					return !1;
				f && (a = f.banStatus);
				b = b.skus;
				for (var d in b)
					this.priceView.sku[b[d].msizeId] = {
						priceView: b[d].priceView,
						couponHide: b[d].couponHide,
						flashStock: b[d].priceView.flashStock,
						banStatus: a,
						svipView: b[d].svipView ? b[d].svipView : {}
					},
					this.checkChartType(b[d].priceChart) && (this.priceChartData.sku[b[d].msizeId] =
						b[d].priceChart),
					b[d].panelView && (this.panelView.sku[b[d].msizeId] = b[d].panelView);
				f && f.priceView && (this.priceView.mid = {
					priceView: f.priceView,
					showMode: f.showMode || 0,
					couponHide: f.couponHide,
					flashStock: f.priceView.flashStock ? f.priceView.flashStock : "",
					banStatus: a,
					svipView: f.svipView ? f.svipView : {}
				});
				this.checkChartType(f.priceChart) && (this.priceChartData.mid = f.priceChart);
				f.panelView && (this.panelView.mid = f.panelView)
			},
			getTipsMapCB: function(b) {
				var a, f;
				if (void 0 == b || "" == b || $.isEmptyObject(b))
					return !1;
				var d = b.product_price_range_mapping[this.mid];
				if (d)
					var c = d.banStatus,
						e = d.banTips,
						k = d.currentBanActivityEndTime;
				a = b.skus;
				b.promotionTipsMap && (f = b.promotionTipsMap);
				for (var g in a)
					this.tipsItem.sku[a[g].msizeId] = {
						banStatus: c,
						banTips: e,
						currentBanActivityEndTime: k
					},
					f[a[g].promotionTipsKey] && (this.tipsItem.sku[a[g].msizeId] = $.extend(this
						.tipsItem.sku[a[g].msizeId], {
							normalTipsList: f[a[g].promotionTipsKey].normalTipsList,
							restrictTipsList: f[a[g].promotionTipsKey].restrictTipsList,
							headTipsList: f[a[g].promotionTipsKey].headTipsList,
							couponHide: a[g].couponHide
						}));
				this.tipsItem.mid = {
					banStatus: c,
					banTips: e,
					currentBanActivityEndTime: k
				};
				d && f[d.promotionTipsKey] && (this.tipsItem.mid = $.extend(this.midTipsItem, {
					normalTipsList: f[d.promotionTipsKey].normalTipsList,
					restrictTipsList: f[d.promotionTipsKey].restrictTipsList,
					headTipsList: f[d.promotionTipsKey].headTipsList,
					couponHide: d.couponHide
				}))
			},
			banCountdown: function(b) {
				$("#J-warmup-time").removeClass("hidden");
				b = VIPSHOP.Time.get(1E3 * b, "M\u6708D\u65e5 H:m");
				b = b.replace(/\d+/g, function(a) {
					return 10 <= a ? a : "0" + a
				});
				$(".J-warmup-time-start").html(b)
			},
			renderPanelViewInfo: function() {
				var b = nsMerchandiseMod.selectedSize,
					a = "//shop.vipstatic.com/img/detail/teaser_backup_high-hash-6f14f13d.png",
					b = -1 != b ? this.panelView.sku[b] : this.panelView.mid;
				$.isEmptyObject(b) || !b.salePrice && !b.mainText ? $("#J-panelView-wrap").addClass(
					"hidden") : (void 0 !== b.bgImg && $.when(this.loadImage(b.bgImg, a)).then(
						function(b) {
							a = b;
							$(".J_bgimg").attr("src", a)
						}),
					$(".J_bgimg").attr("src", a),
					$(".J_panelView_left").html(e("J_panelView_tpl", {
						style: b.style,
						salePrice: b.salePrice || "",
						mainText: b.mainText || "",
						subText: b.subText || ""
					})),
					$("#J-panelView-wrap").removeClass("hidden"),
					a && $("#J-pi-price-box").addClass("hasBgImg"),
					"2" == b.style && b.salePrice && ($(".J_panelView_content").addClass(
							"hasSalePrice"),
						b.subText && b.subText.msg && $(".J_panelView_content").addClass(
							"hasSubText")),
					b.btn && b.btn.type && "1" == b.btn.type ? $("#J_add_fav_wrapper_banStatus")
					.removeClass("hidden") : $("#J_add_fav_wrapper_banStatus").addClass(
						"hidden"))
			},
			loadImage: function(b, a) {
				var c = $.Deferred();
				b = b.replace(/^http:|https:/i, "");
				var d = new window.Image;
				d.src = b;
				d.onload = function() {
					c.resolve(b)
				};
				d.onerror = function() {
					c.resolve(a)
				};
				return c.promise()
			},
			renderNewActivetips: function() {
				var b = this,
					a = nsMerchandiseMod.selectedSize;
				if ($.isEmptyObject(this.tipsItem.mid))
					return !1;
				var a = -1 != a ? this.tipsItem.sku[a] : this.tipsItem.mid,
					c = a.normalTipsList ? a.normalTipsList : [],
					d = a.restrictTipsList ? a.restrictTipsList : "",
					e = a.headTipsList ? a.headTipsList : "",
					l = [],
					k, g, m, q;
				e && (c = e.concat(c));
				if (d) {
					for (e = 0; e < d.length; e++)
						d[e].type = "\u9650\u5236";
					c = c.concat(d)
				}!$.isEmptyObject(a) && a.currentBanActivityEndTime && (m = a
					.currentBanActivityEndTime);
				!$.isEmptyObject(a) && a.banStatus && (q = a.banStatus);
				!$.isEmptyObject(a) && a.banTips && (k = a.banTips);
				!$.isEmptyObject(a) && a.couponHide && (g = a.couponHide);
				k && ($(".user-in-vip p").html(k),
					$(".J_M_productInfo").addClass("hasbanTips"));
				2 == q && (m && b.banCountdown(m),
					this.resetPageStatus());
				for (e = 0; e < c.length; e++)
					k = c[e].typeId,
					14 == k ? $.Listeners.pub("pms.type.return").success() : 4 != k && l.push(c[e]);
				0 < b.$pmsContent.length && 0 < l.length ? ($(".pmsContent").Template({
						templateElement: $("#J-pms-template"),
						replace: !0
					}).Template("process", {
						item: l
					}).addClass("pbox-pms-has").removeClass("hidden"),
					16 == l[0].typeId && $(".pp-activity").removeClass("hidden")) : $(
					".pmsContent").addClass("hidden");
				$.Listeners.sub("leftSide.already.render").onsuccess(function() {
					0 < $("#J-pms-sider-wrap").length && 0 < l.length ? ($(
							"#J-pms-sider-wrap").Template({
							templateElement: $("#J-pms-templateSider"),
							replace: !0
						}).Template("process", {
							items: l
						}).removeClass("hidden"),
						!b.isExtraPmsTipsInited && b.extraPmsTips.length && ($(
								"#J-pms-sider-wrap").append($.Tpl(
								"J-pms-additional-tips-sider", {
									data: b.extraPmsTips
								})),
							b.isExtraPmsTipsInited = !0),
						$("div.J-list-sider-pms-wrap").removeClass("hidden"),
						$("#J-list-sider-pms-wrap img.lazy").antiHijackingImage({
							pre_class: "lazy"
						})) : $("#J-pms-sider-wrap").addClass("hidden");
					g && 1 == g && ($(".J_specialPrice_coupons").addClass("hidden"),
						0 == c.length && $(".J-sider-pms").addClass("hidden"))
				});
				b.pmsSlideEventer()
			},
			resetPageStatus: function() {
				$(".i-button,#J-topbar-addBtn,#J-vip-point").remove();
				$(".J_banAddFav, #J-warm-s-tips, #J-dt-collectdt-collect").removeClass("hidden")
			},
			renderPrice: function() {
				var b = nsMerchandiseMod.selectedSize,
					a = {}; -
				1 != b && this.priceView.sku[b].priceView || this.priceView.mid.priceView ? a = -
					1 != b ? this.priceView.sku[b].priceView : this.priceView.mid.priceView : this
					.price.salePrice && (a.salePrice = this.price.salePrice);
				b = a.salePrice ? a.salePrice : {};
				if (b.salePriceType && "prepay" == b.salePriceType)
					return $.Listeners.pub(this.event.pub.prepayPrice).success(a),
						!1;
				var c = a.flashStock ? a.flashStock : "",
					d = c.saleDesc ? c.saleDesc : "",
					n = a.saleLabel ? a.saleLabel : "";
				this.sell_price = a.salePrice.salePrice ? a.salePrice.salePrice : "0";
				this.market_price = a.salePrice.saleMarketPrice ? a.salePrice.saleMarketPrice : "0";
				$(".J_M_productInfo,.M-productInfo").addClass("special-price");
				if (void 0 === a.bgImg || "" == a.bgImg)
					a.bgImg = "//b.appsimg.com/upload/momin/2020/08/19/22/1597801542667.png";
				if (a.sellPriceTags && 0 < a.sellPriceTags.length)
					for (var l = 0; l < a.sellPriceTags.length; l++)
						a.sellPriceTags[l].vipPrice = a.sellPriceTags[l].price.split(".")[0],
						a.sellPriceTags[l].vipPriceSmall = a.sellPriceTags[l].price.split(".")[1];
				$("#J-specialPrice-wrap").html(e("J_pms_specialPrice_tpl", {
					salePrice: b,
					priceView: a,
					saleDesc: d,
					saleLabel: n
				})).removeClass("hidden");
				$(".J_price-loadding").addClass("hidden");
				d && $(".J_progress_bar").css("width", c.saledPercent + "%");
				"2" == b.salePriceTimeType && b.salePriceTime && this.countDown(b.salePriceTime);
				"2" == this.detailStatus && "1" == b.salePriceTimeType && b.salePriceTime && this
					.banCountdown(b.salePriceTime);
				$("#J-topBar-sell-price").html(e("J-topBarPriceTpl", {
					special_price: b.salePrice,
					icon_msg: b.salePriceTips
				}));
				"1" == this.isHaiTao && $("#J-price-detail").removeClass("hidden")
			},
			renderSvipView: function() {
				var b = this,
					a = nsMerchandiseMod.selectedSize,
					c = {}; -
				1 != a ? this.priceView.sku[a].svipView && (c = this.priceView.sku[a].svipView) :
					this.priceView.mid.priceView && (c = this.priceView.mid.svipView);
				if ($.isEmptyObject(c))
					return $("#J_sivp_view").addClass("hidden"),
						!1;
				b.sendMars("div", "pc_svip_promotion_exposure");
				$("#J_sivp_view").html(e("J_svip_entrance_tpl", {
					svipView: c
				})).removeClass("hidden");
				var d = {};
				b.gettipMsg();
				$(".J_svip_ent_link").on("click", function() {
					b.sendMars("div", "pc_svip_promotion_close_exposure");
					d = $.Dialog({
						elStyle: "dialog-sivp",
						content: e("J_svip_dialog_tpl", {
							tips: b.svipTips
						}),
						model: !0,
						opacity: 0.5,
						size: [712, 457],
						custom: !0,
						showEvent: function() {},
						closeEvent: function() {
							this.destroy()
						}
					});
					d.open();
					$(".J_svip_close").on("click", function() {
						b.sendMars("div", "pc_svip_promotion_close_click1");
						d.close()
					});
					$(".J_svip_close_know").on("click", function() {
						b.sendMars("div", "pc_svip_promotion_close_click2");
						d.close()
					})
				})
			},
			gettipMsg: function() {
				var b = this;
				"" == b.svipTips && ($.when(c.getPcDocument("pc_svip_promotion",
						"docment_svip_promotion")).done(function(a) {
						a && a[0] && a[0].content && (b.svipTips = a[0].content)
					}),
					"" == b.svipTips && (b.svipTips =
						"\u7acb\u5373\u5f00\u901a/\u7eed\u8d39\u8d85\u7ea7VIP\uff0c\u7acb\u4eab\u7279\u6743"
						))
			},
			checkChartType: function(b) {
				var a = !1;
				if (!$.isEmptyObject(b))
					switch (b.type) {
						case "2":
						case "V":
							a = !0
					}
				return a
			},
			renderPriceChart: function() {
				var b = nsMerchandiseMod.selectedSize,
					b = -1 != b ? this.priceChartData.sku[b] : this.priceChartData.mid;
				$.isEmptyObject(b) ? $("#J_price_scroll").addClass("hidden") : $("#J_price_scroll")
					.html(e("J_price_detailTemplate", b)).removeClass("hidden")
			},
			sendMars: function(b, a) {
				var c = {};
				c[a] = 1;
				window.Mar && Mar.Seed.request(b, "show", a, c)
			},
			redendPricePart: function() {
				this.renderPrice();
				void 0 !== I_query.closeSvipEnt && 0 != I_query.closeSvipEnt || this
				.renderSvipView();
				this.renderNewActivetips();
				this.renderPriceChart();
				this.renderPanelViewInfo()
			}
		};
		h.exports = g
	}, {
		"../../../../../plugins/modules/imgResize/index.js": 99,
		"../../../../../plugins/modules/template": 100,
		"../../../../../plugins/pcDocument.js": 108
	}],
	59: [function(g, h, p) {
		h.exports = {
			event: {
				sub: {
					initSeo: "initSeo.detail"
				}
			},
			init: function() {
				this.bindEventListeners()
			},
			bindEventListeners: function() {
				$.Listeners.sub(this.event.sub.initSeo).onsuccess(function(e) {
					e.product && (e = e.product.title,
						$(document).attr("title", e),
						$('meta[name="keywords"]').attr("content", e),
						$('meta[name="description"]').attr("content", e))
				})
			}
		}
	}, {}],
	60: [function(g, h, p) {
		var e = g("../../../../../plugins/modules/img/addHost.js"),
			c = g("../../../../../plugins/modules/imgResize/index.js");
		h.exports = {
			event: {
				sub: {
					initShare: "initShare.detail"
				}
			},
			init: function() {
				this.bindEventListeners()
			},
			bindEventListeners: function() {
				$.Listeners.sub(this.event.sub.initShare).onsuccess(function(b) {
					if (b.product) {
						var a = b.product.brandIdStr;
						b = b.product;
						var f = [];
						if (b.detailImages)
							for (var d in b.detailImages) {
								var n = e(b.detailImages[d].imageUrl);
								f.push("'" + c(n, 420, 420, 90) + "'")
							}
						a = {
							id: 3 == b.state ? "532fe94f944ac" : "5272302f3575d",
							b_id: a,
							img: f.join(","),
							m_name: b.title.replace(/\"/g, ""),
							b_name: b.brandStoreName.replace(/\"/g, ""),
							discount: b.discount,
							min_price: b.min_vipshop_price,
							market_min_price: b.min_market_price,
							price_discount: b.min_market_price - b.min_vipshop_price
						};
						$("#J-detailShare-wrap").html($.Tpl("J_script_detail_share", a))
					}
				})
			}
		}
	}, {
		"../../../../../plugins/modules/img/addHost.js": 98,
		"../../../../../plugins/modules/imgResize/index.js": 99
	}],
	61: [function(g, h, p) {
		g("../../../../../plugins/modules/img/addHost.js");
		g("../../../../../plugins/modules/imgResize/index.js");
		var e = g("../model/modSizeDetail.js");
		h.exports = {
			event: {
				sub: {
					sizeDetail: "sizeDetail.detail"
				},
				pub: {
					sizeInitFinish: "sizeInitFinish.finish"
				}
			},
			data: {
				sizePropId: "453"
			},
			init: function() {
				this.bindEventListeners()
			},
			bindEventListeners: function() {
				var c = this;
				$.Listeners.sub(c.event.sub.sizeDetail).onsuccess(function(b) {
					if (b.pcSkuData.skus && b.pcSkuData.saleProps) {
						var a = b.pcSkuData,
							f = "\u5c3a\u7801",
							d = 0,
							n = [];
						if (a.saleProps)
							for (var l in a.saleProps)
								"453" == a.saleProps[l].id && (f = a.saleProps[l].name);
						n = c.processSizeList(b);
						d = n.length;
						f = {
							sizeCount: d,
							sizeTitle: f,
							sizeList: n,
							detailStatus: b.product.detailStatus,
							allowHideSize: b.product.allowHideSize ? b.product
								.allowHideSize : 0
						};
						$("#J_detail_size").html($.Tpl("J_detail_size_tpl", f));
						b = {
							data: b,
							pcSizeData: f
						};
						0 == d && $("#J_detail_size").addClass("hidden");
						nsReserveMod.init(a.skus);
						e.init(n);
						$.Listeners.pub(c.event.pub.sizeInitFinish).success(b);
						VIPSHOP.Detect.isIE6 || 0 == nsMerchandiseMod.pcSizeData.sizeList
							.length || FavoriteGoods.init({
								skuList: nsMerchandiseMod.pcSizeData.sizeList.join(","),
								currentSku: nsMerchandiseMod.selectedSize,
								warehouse: $.Cookie.get("vip_wh"),
								brandId: nsMerchandiseMod.bid,
								goodsId: nsMerchandiseMod.mid
							});
						0 == nsMerchandiseMod.brandStatus && nsRelateGoodsMod.init()
					}
				})
			},
			processSizeList: function(c) {
				var b = c.pcSkuData,
					a = [],
					f = b.skus,
					b = this.getSizeSizeName(b.skus, b.saleProps),
					d;
				for (d in f) {
					if (f[d].mid == c.product.productIdStr) {
						var e = f[d].msizeId;
						f[d].id = f[d].msizeId;
						f[d].name = b[e] ? b[e].value : "\u5747\u7801";
						f[d].sort = b[e] ? b[e].sort : "999";
						a.push(f[d])
					}
					a = a.sort(function(a, b) {
						return a.sort - b.sort
					})
				}
				return a
			},
			explainSkuKey: function(c) {
				var b = [];
				c = c.split(";");
				for (var a in c) {
					var f = c[a].toString().split(":");
					1 < f.length && (b[f[0]] = f[1])
				}
				return b
			},
			getSizeSizeName: function(c, b) {
				var a = [],
					f = [],
					d;
				for (d in c)
					f.push({
						keyExplain: this.explainSkuKey(d),
						detail: c[d]
					});
				for (d in b)
					if (b[d].id == this.data.sizePropId) {
						var e = b[d].values,
							l;
						for (l in e) {
							var k = e[l].vid ? e[l].vid : "",
								g;
							for (g in f) {
								var m = f[g].keyExplain,
									q;
								for (q in m)
									m[q] == k && q == b[d].pid && f[g].detail.msizeId && (a[f[g]
										.detail.msizeId] = {
										value: e[l].name ? e[l].name : "",
										sort: e[l].sort ? e[l].sort : 999
									})
							}
						}
					}
				return a
			}
		}
	}, {
		"../../../../../plugins/modules/img/addHost.js": 98,
		"../../../../../plugins/modules/imgResize/index.js": 99,
		"../model/modSizeDetail.js": 36
	}],
	62: [function(g, h, p) {
		h.exports = {
			event: {
				sub: {
					initServices: "initServices.detail",
					getInfoAndSkuSuccess: "getInfoAndSkuSuccess.detail.success"
				}
			},
			data: {
				productId: ""
			},
			init: function(e) {
				this.bindEventListeners()
			},
			bindEventListeners: function() {
				var e = this;
				$.Listeners.sub(e.event.sub.initServices).onsuccess(function(c) {
					$.Listeners.sub(e.event.sub.getInfoAndSkuSuccess).onsuccess(function(
					b) {
						if (c.product) {
							var a = [];
							window.url.m_id && b.pcSkuData
								.product_price_range_mapping[window.url.m_id] && (
									a = b.pcSkuData.product_price_range_mapping[
										window.url.m_id]);
							e.getServicesCB(c.product, a)
						}
					})
				})
			},
			getServicesCB: function(e, c) {
				var b = e.supportServices || [];
				if (c.supportServices)
					for (var a in c.supportServices)
						c.supportServices[a].title && "" != c.supportServices[a].title && b.push(c
							.supportServices[a]);
				for (a = 0; a < b.length; a++)
					b[a].iconType = !b || "1" !== b[a].iconType && 1 !== b[a].iconType ? !b ||
					"0" !== b[a].iconType && 0 !== b[a].iconType ? "iconBlank" : "iconCaution" :
					"iconSuccess";
				b && this.renderServices(b)
			},
			renderServices: function(e) {
				$(".J_services_other,.J_services,.J_services_content").removeClass("hidden");
				$(".J-ht-tip").html($.Tpl("J-services-tpl", {
					data: e
				}));
				$(".J_service_tips").on("mouseenter", function() {
					$(".J_service-tooltips").addClass("z-ui-tooltips-in")
				}).on("mouseleave", function() {
					$(".J_service-tooltips").removeClass("z-ui-tooltips-in")
				});
				$(".J_services_wrap").html($.Tpl("J-services-wrap-tpl", {
					data: e
				}));
				$(".J_service_tips").on("click", function() {
					$(".J-topbar-tabs").removeClass("selected");
					$(".J_services").addClass("selected")
				})
			}
		}
	}, {}],
	63: [function(g, h, p) {
		var e = g("../../../../plugins/modules/http/httpV2.js"),
			c = g("urlParam");
		h.exports = {
			event: {
				sub: {
					getDetailInfoSuccess: "getDetailInfo.detail.success"
				},
				pub: {}
			},
			data: {
				mid: null,
				brandId: null,
				hasCode: !1
			},
			init: function() {
				$.Cookie.get("cps") || this.subEvents()
			},
			subEvents: function() {
				var b = this;
				$("#J_qrcode_flow").html($.Tpl("J_qrcode_tpl"));
				$(".g-qr-code-title").on("mouseenter", function() {
					b.data.hasCode || b.getQrcode();
					b.data.hasCode && $(".g-qr-code-main").removeClass("hidden")
				});
				$(".g-qr-code").on("mouseleave", function() {
					$(".g-qr-code-main").addClass("hidden")
				});
				$.Listeners.sub(b.event.sub.getDetailInfoSuccess).onsuccess(function(a) {
					a && a.product && (b.data.mid = a.product.productIdStr,
						b.data.brandId = a.product.brandIdStr)
				})
			},
			getQrcode: function() {
				var b = this;
				b.data.hasCode = !0;
				if (b.data.mid && b.data.brandId) {
					var a = "pages/index/index?$route=" + encodeURIComponent(
							"pages/productDetail/productDetail?brandId=" + b.data.brandId +
							"&goodsId=" + b.data.mid + "&channel=pcshare") +
						"&tra_from=adp%3Aql04ihb8%3A%3A%3A%3A",
						a = c.get({
							hash: "ptx26",
							page: "pages/qrCodeRouter/qrCodeRouter",
							str: a
						});
					e({
						url: "//mapi.vip.com/vips-mobile/rest/shopping/wxcode/pc/getWxACodeShare/v1",
						data: a,
						dataType: "jsonp",
						jsonpCallback: "get_qrcode_flow",
						successCallback: function(a) {
							1 === a.code && a.data.pic ? (b.data.hasCode = !0,
									b.handleRes("data:image/png;base64," + a.data.pic)
									) : (b.data.hasCode = !1,
									b.handleRes())
						},
						errorCallback: function() {
							b.data.hasCode = !1;
							b.handleRes()
						}
					})
				}
			},
			handleRes: function(b) {
				var a = this;
				b ? $("#J_img_qrcode").attr("src", b) : ($("#J_img_qrcode").attr("src",
						"//shop.vipstatic.com/img/detail/qrcode_failed-hash-32025ab9.png"),
					$("#J_img_qrcode").on("click", function() {
						a.data.hasCode || a.getQrcode()
					}))
			}
		}
	}, {
		"../../../../plugins/modules/http/httpV2.js": 96,
		urlParam: 110
	}],
	64: [function(g, h, p) {
		var e = g("./model/index.js");
		g = {
			view: {
				recommend: g("./view/index.js")
			},
			init: function(c) {
				e.init();
				this.view.recommend.init()
			}
		};
		h.exports = g
	}, {
		"./model/index.js": 65,
		"./view/index.js": 68
	}],
	65: [function(g, h, p) {
		var e = g("../../../../../plugins/modules/http/httpV2.js"),
			c = g("../../../../../plugins/urlParam.js");
		h.exports = {
			url: {
				getRecommendApi: "//mapi.vip.com/vips-mobile/rest/shopping/pc/detail/recommend/v1"
			},
			event: {
				sub: {
					getSkuListSuccess: "getProductInfo.detail.success",
					getDetailInfoSuccess: "getDetailInfo.detail.success",
					getBrandInfoSuccess: "getBrandInfo.detail.success"
				},
				pub: {
					getRecommendDetailSuccess: "getRecommend.detail.success"
				}
			},
			init: function() {
				var b = this;
				$.Listeners.sub(b.event.sub.getBrandInfoSuccess).onsuccess(function(a) {
					if ("www.vipglobal.hk" == window.location.host)
						return !0;
					a.product && (a = a.product,
						a = c.get({
							modules: "lookLook,brandStoreV2",
							productId: a.productIdStr,
							spuId: a.spuId,
							brandId: a.brandIdStr,
							categoryId: a.newCatId ? a.newCatId : "",
							brandStoreSn: a.brandStoreSn ? a.brandStoreSn : "",
							sourceType: "other",
							abtestIds: "brandStore_XG:5211,brandStore_RX:5210,lookLook:5212",
							maxLimits: "brandStoreV2:12,lookLook:20",
							minLimits: "brandStoreV2:4,lookLook:5",
							pageSizes: "brandStoreV2:3,lookLook:5"
						}),
						e({
							url: b.url.getRecommendApi,
							data: a,
							jsonp: "callback",
							jsonpCallback: "getRecommendCB",
							dataType: "jsonp",
							cache: !0,
							timeout: 8E3,
							ajaxTryTimes: 1,
							code: "getRecommend_ajax_err",
							successCallback: function(a) {
								1 == a.code && a.data && $.Listeners.pub(b.event
									.pub.getRecommendDetailSuccess).success(
									a.data)
							},
							errorCallback: function(a) {
								console.log("getRecommendError")
							}
						}))
				})
			}
		}
	}, {
		"../../../../../plugins/modules/http/httpV2.js": 96,
		"../../../../../plugins/urlParam.js": 110
	}],
	66: [function(g, h, p) {
		var e = g("../../../../plugins/modules/Scroll/LazyDomHelper"),
			c = g("./../../../../plugins/modules/checkLogin/globalLogin.js"),
			b = {
				warehouse: $.Cookie.get("vip_wh"),
				recoApi: "//resys.vip.com",
				recoCount: 12,
				mid: "",
				bid: "",
				isScriptInited: 0,
				displayTxt: "",
				stockStatusData: {},
				event: {
					sub: {
						getBrandInfoSuccess: "getBrandInfo.detail.success"
					}
				},
				init: function() {
					var a = this;
					$.Listeners.sub(a.event.sub.getBrandInfoSuccess).onsuccess(function(b) {
						window.abtest && "C1" == window.abtest.state() || !b.product || (a.mid =
							b.product.productIdStr,
							a.bid = b.product.brandIdStr,
							3 == b.product.detailStatus ? (a.displayTxt =
								"\u5df2\u4e0b\u67b6",
								$("#J-proData-box").append($("#J-saleOut-lodingTpl")
							.html()),
								a.loadRecoScript(a.renderRecoCB)) : 2 == b.product
							.detailStatus ? a.lazyLoadRecoGoods() : a.bindCustomEvent())
					})
				},
				bindCustomEvent: function() {
					var a = this;
					$.Listeners.sub("stock_status").onsuccess(function(c) {
						$.extend(a.stockStatusData, c);
						0 == c.canBuySizeNum ? 0 < c.saleOutSize ? (a.displayTxt =
							"\u5df2\u62a2\u5149",
							$("#J-proData-box").append($("#J-saleOut-lodingTpl").html()),
							a.loadRecoScript(a.renderRecoCB)) : 0 < c.hasChanceSize && ($(
								"#J-proData-box").append($("#J-saleOut-lodingTpl").html()),
							a.loadRecoScript(function(a) {
								b.renderRecoCB(a);
								$(".J-recommend-txt").addClass("hidden")
							})) : a.lazyLoadRecoGoods()
					})
				},
				loadRecoScript: function(a) {
					var b = this,
						d;
					c.isHk() ? $("#J_maybeLike_loding").addClass("hidden") : (d = {
							mid: b.mid,
							bid: b.bid,
							target: $("#J_maybeLike_loding"),
							page: "detail",
							pageType: "page_commodity_detail",
							module: "part1",
							abtest_id: 132E3,
							cb: a
						},
						$.Loader.advScript({
							name: "productRecommendField",
							url: "//shop.vipstatic.com/js/public/widget/ProductRecommend/index-hash-be9f6a0b.js"
						}, {
							name: "productRecommendCallback",
							def: function() {
								window.nsRecommendMod.init(d);
								b.isScriptInited = 1
							},
							requires: ["productRecommendField"]
						}))
				},
				lazyLoadRecoGoods: function() {
					var a = this,
						b;
					c.isHk() || (b = {
							mid: a.mid,
							bid: a.bid,
							target: $("#J_recommend_goods_box"),
							page: "detail",
							pageType: "page_commodity_detail",
							module: "part2",
							abtest_id: 132E3
						},
						a.isScriptInited ? window.nsRecommendMod.init(b) : new e({
							$dom: $("#J-FW-recomBox"),
							preHeight: 200,
							loadingFn: function(d) {
								$.Loader.advScript({
									name: "productRecommendField",
									url: "//shop.vipstatic.com/js/public/widget/ProductRecommend/index-hash-be9f6a0b.js"
								}, {
									name: "productRecommendCallback",
									def: function() {
										window.nsRecommendMod.init(b);
										a.isScriptInited = 1
									},
									requires: ["productRecommendField"]
								})
							}
						}))
				},
				renderRecoCB: function(a) {
					0 == a.length && (3 == nsMerchandiseMod.brandStatus ? $("#J_maybeLike_loding").html(
						$("#J-saleOut-noguessTpl").html()) : $("#J_maybeLike_loding").addClass(
						"hidden"));
					$(".J-recommend-txt-status").html(b.displayTxt).parent().removeClass("hidden")
				}
			};
		h.exports = b
	}, {
		"../../../../plugins/modules/Scroll/LazyDomHelper": 88,
		"./../../../../plugins/modules/checkLogin/globalLogin.js": 94
	}],
	67: [function(g, h, p) {
		var e = {
			cur_time: null,
			timer: null,
			start_time: +new Date,
			sTop: 0,
			limitObj: $(".M-detailCon"),
			init: function() {
				$(window).on("scroll.recoMark", function() {
					e.__scroll()
				})
			},
			scrollEvent: function() {
				var c = this.limitObj.offset().top,
					b = $(window).height() / 3;
				this.sTop && c - this.sTop <= b && this.sendRecoMsg()
			},
			sendRecoMsg: function() {
				$.Listeners.pub("recoMark").success();
				$(window).off("scroll.recoMark")
			},
			__scroll: function() {
				var c = this;
				c.cur_time = +new Date;
				clearTimeout(c.timer);
				150 < c.cur_time - c.start_time ? (c.sTop = $(window).scrollTop(),
					c.scrollEvent(),
					c.start_time = c.cur_time) : c.timer = setTimeout(function() {
					c.sTop = $(window).scrollTop();
					c.scrollEvent()
				}, 150)
			}
		};
		h.exports = e
	}, {}],
	68: [function(g, h, p) {
		var e = g("../../../../../plugins/modules/template");
		window.nsFootprintMod = g("../../../../modules/detail_v3/footprint/footMod.js");
		h.exports = {
			init: function(c) {
				this.bindEventListeners()
			},
			event: {
				sub: {
					getBrandInfoSuccess: "getBrandInfo.detail.success",
					getRecommendDetailSuccess: "getRecommend.detail.success"
				}
			},
			bindEventListeners: function() {
				var c = this;
				nsFootprintMod.init();
				$.Listeners.sub(c.event.sub.getBrandInfoSuccess).onsuccess(function(b) {
					b && c.renderRecommendStore(b)
				});
				$.Listeners.sub(c.event.sub.getRecommendDetailSuccess).onsuccess(function(b) {
					window.abtest && "C1" == window.abtest.state() || (b.brandStoreV2
						.products && 3 <= b.brandStoreV2.products.length && c
						.renderRecommendBrand(b.brandStoreV2),
						b.lookLook.products && 5 <= b.lookLook.products.length && c
						.renderRecommendLook(b.lookLook))
				});
				$.Listeners.sub("getRecommend.footer.success").onsuccess(function(b) {
					b.products && 0 < b.products.length && c.renderRecommendFooter(b
						.products)
				})
			},
			renderRecommendStore: function(c) {
				var b = c.product.brandStoreName,
					a = c.product.brandStory,
					f = c.product.brandStoreLogo;
				c = c.product.brandStoreSn;
				"10033984" != c && ($(".J_brandName").html(b),
					$(".J_recommend_store").html(e("J-recommend-storeTpl", {
						brandStoreName: b,
						brandStory: a,
						brandStoreLogo: f,
						brandStoreSn: c
					})).removeClass("hidden"))
			},
			renderRecommendBrand: function(c) {
				c = c.products;
				for (var b = 0; b < c.length; b++)
					c[b] = $.extend(c[b], {
						icon: ""
					}),
					c[b].tabIconId ? "rx_1" == c[b].tabIconId ? c[b].icon = "re-icon1" : "rx_2" ==
					c[b].tabIconId ? c[b].icon = "re-icon2" : "rx_3" == c[b].tabIconId && (c[b]
						.icon = "re-icon3") : c[b].icon = "hidden";
				$(".J_recommend_brandStore").html(e("J-recommend-brandStoreTpl", {
					data: c
				})).removeClass("hidden");
				$(".J_recommend_brandStore").Switchable({
					panelCls: $("#J-recommend-brand"),
					pervCls: $("#J-re-brand-pre"),
					nextCls: $("#J-re-brand-next"),
					effect: "slideY",
					setChildWidth: 178,
					setChildHeight: 250,
					visiNum: 4,
					viewNum: 4,
					firstCls: "icon-btn-disable",
					lastCls: "icon-btn-disable"
				})
			},
			renderRecommendLook: function(c) {
				c = c.products;
				$(".J_recommend_look").html(e("J-recommend-lookTpl", {
					data: c
				})).removeClass("hidden");
				$(".J_recommend_look").Switchable({
					panelCls: $("#J-recommend-look"),
					pervCls: $("#J-re-look-pre"),
					nextCls: $("#J-re-look-next"),
					effect: "slideY",
					setChildWidth: 178,
					setChildHeight: 250,
					visiNum: 5,
					viewNum: 5,
					firstCls: "icon-btn-disable",
					lastCls: "icon-btn-disable"
				})
			},
			renderRecommendFooter: function(c) {
				if (5 <= c.length) {
					for (var b in c)
						c[b].url = window.openhk && 1 == window.openhk && c[b].flags && 1 == (c[b]
							.flags & 1024) >> 10 ? "//www.vipglobal.hk/detail-" + c[b].brandId +
						"-" + c[b].productId + ".html" : "//detail.vip.com/detail-" + c[b].brandId +
						"-" + c[b].productId + ".html";
					$(".J_recommend_footerprint").html(e("J-recommend-footerTpl", {
						data: c
					})).removeClass("hidden");
					5 == c.length && $(".J_footprint_more").addClass("hidden");
					$("#J-footprint-mod").addClass("hidden")
				}
			}
		}
	}, {
		"../../../../../plugins/modules/template": 100,
		"../../../../modules/detail_v3/footprint/footMod.js": 23
	}],
	69: [function(g, h, p) {
		window.Validate = g("../../../../plugins/modules/validate/validation");
		window.template = g("../../../../plugins/modules/template");
		var e = g("../../../../plugins/modules/checkLogin/globalLogin.js");
		g = {
			pdcSizeRecommandApi: "//detail.vip.com/detail-ajax.php",
			sizeRecommandPop: null,
			isFilledTable: !1,
			popOpenFlag: !1,
			userHeight: 0,
			userWeight: 0,
			oldHeight: 0,
			oldWeight: 0,
			sizeBtnObject: $(".J-sideAide-btn"),
			open: 1,
			marsCid: $.Cookie.get("mars_cid"),
			isUseNewSizeHelper: 1,
			needFive: 0,
			newSizeHelperPop: null,
			isUserSizeInfoUpdate: 0,
			loadedSizeInfo: {},
			getFiveSizeRecomData: null,
			isUserSizeCompleted: 0,
			userSizeInfo: {
				id: null,
				origin: 0
			},
			recomSizeIds: [],
			lastSavedUserSizeInfo: [],
			vipRUID: $.Cookie.get("VipRUID"),
			testVar: 0,
			shoeSizeData: {},
			isExpandFlag: 0,
			init: function() {
				var c = this;
				$.Listeners.sub("loadedSizeRecommand").onsuccess(function() {
					c.bindEvents()
				});
				c.isUseNewSizeHelper = 1;
				c.bindCustomEvents()
			},
			bindEvents: function() {
				var c = this;
				c.sizeRecommandPop = $.Dialog({
					model: !0,
					isFixed: !1,
					opacity: 0.3,
					size: [900],
					isCache: !0,
					custom: !0,
					content: $("#J-sizeAide-tmp"),
					showEvent: function() {
						var b = $("#J-size-box").clone();
						nsSizeRecommandMod.popOpenFlag = !0;
						nsSizeRecommandMod.isFilledTable ? ($(
								"#J-sizeTable-wrap input.J-recHeight").val($(
								"#J-user-rec-wrap input.J-recHeight").val()),
							$("#J-sizeTable-wrap input.J-recWeight").val($(
								"#J-user-rec-wrap input.J-recWeight").val())) : (
							nsSizeRecommandMod.isFilledTable = !0,
							$("#J-sizeTable-wrap").append(b),
							$("#J-sizeTable-wrap").find("#J-user-rec-wrap").attr(
								"id", "J-user-rec-wrap-pop"),
							$("#J-sizeTable-wrap").find("#J-size-rec-sb-msg").html(
								$(".J-dc-aide-tips").html()),
							nsSizeRecommandMod.sizeRecommandPop.resize(),
							$("#J-sizeTable-wrap .J-sb-table").addClass("hidden")
							.removeClass("hidden"));
						$(".J-recHeight").focus();
						b = $(window).scrollTop();
						nsSizeRecommandMod.sizeRecommandPop.position(null, b + 130)
					}
				});
				$(document).on("click", "#J-sizeAide-close", function() {
					nsSizeRecommandMod.sizeRecommandPop.close();
					nsSizeRecommandMod.popOpenFlag = !1
				});
				nsSizeRecommandMod.seeMoreEvent();
				nsSizeRecommandMod.sizeBtnObject.on("click", function() {
					var b = $(window).scrollTop();
					nsSizeRecommandMod.sizeRecommandPop.position(null, b + 130).open();
					$(".J_close_alert_btn").trigger("click")
				});
				$(document).on("click", ".J_size_helper_trigger_btn", function(b) {
					b.preventDefault();
					c.newSizeHelperPop.open();
					"" == $(".J_size_table_wrapper").html() && (b = $("#J-wrap-sizeTable")
						.html(),
						$(".J_size_table_wrapper").html(b),
						$(".size-helper-dialog .J-size-tr").removeClass("size-hidden"));
					c.newSizeHelperPop.resize()
				});
				$(document).on("click", ".J_new_size_dialog_colse", function(b) {
					b.preventDefault();
					c.newSizeHelperPop.close()
				});
				$(document).on("click", ".J_close_alert_btn,.J_new_size_helper_alert", function(b) {
					b.preventDefault();
					$(".J_new_size_helper_alert").addClass("hidden");
					$.Storage.set("hasShowSizeHelperV4Alert", "1")
				});
				$(document).on("click", ".J_login_btn", function(b) {
					b.preventDefault();
					$.Cookie.get("VipLID") ? window.location.reload() : (e.redirect(),
						VIPSHOP.login.init({
							loginEvent: function() {
								VIPSHOP.member.chk();
								$(".J_login_tips").addClass("hidden")
							},
							closeEvent: function() {
								this.dialog.destroy()
							}
						}))
				});
				$(document).on("blur", ".J_size_helper_form_input", function(b) {
					b = $(this).val();
					var a = /^(\d)+$/,
						f = $("#J-new-SizeHlper-tips-tmp").html(),
						a = $(this).data("name"),
						d = $(".J_size_form_item_" + a),
						e = c.sizeTypeMatch(a),
						a = e.reg;
					$(".J_size_helper_form_tips_wrap").html("");
					if (c.needFive || !c.needFive && $(this).hasClass(
							"J_size_necessary_form")) {
						if ("" == b)
							return d.find(".J_size_helper_form_tips_wrap").addClass(
									"ui-tooltips-warning").removeClass("ui-tooltips-info"),
								d.find(".J_size_helper_form_tips_wrap").html(f),
								d.addClass("z-ui-form-item-warning z-ui-tooltips-in"),
								d.find(".J_tips_content").html("\u60a8\u8f93\u5165\u7684" +
									e.title + "\u4e0d\u7b26\u5408\u8981\u6c42\uff01"),
								!1;
						d.removeClass("z-ui-tooltips-in z-ui-form-item-warning")
					} else if (!c.needFive && !$(this).hasClass("J_size_necessary_form") &&
						"" == b)
						return d.removeClass("z-ui-tooltips-in z-ui-form-item-warning"),
							!1;
					if ("0" != b && a.test(b))
						d.removeClass("z-ui-tooltips-in z-ui-form-item-warning");
					else
						return d.find(".J_size_helper_form_tips_wrap").addClass(
								"ui-tooltips-warning").removeClass("ui-tooltips-info"),
							d.find(".J_size_helper_form_tips_wrap").html(f),
							d.addClass("z-ui-form-item-warning z-ui-tooltips-in"),
							d.find(".J_tips_content").html("\u60a8\u8f93\u5165\u7684" + e
								.title + "\u4e0d\u7b26\u5408\u8981\u6c42\uff01"),
							!1
				});
				$(document).on("click", ".J-customer-size-helper-table-expand", function() {
					$(".J-customer-size-helper-box").addClass("is-size-helper-form-expand")
						.removeClass("is-size-helper-form-close");
					c.isExpandFlag = 1
				});
				$(document).on("click", ".J-button-size-helper-form-cancel", function() {
					$(".J-customer-size-helper-box").addClass("is-size-helper-form-close")
						.removeClass("is-size-helper-form-expand");
					c.isExpandFlag = 0
				});
				$(document).on("focus", ".J_size_helper_form_input", function(b) {
					b.preventDefault();
					var a = $(this).data("name");
					b = $("#J-new-SizeHlper-tips-tmp").html();
					var f = $(".J_size_form_item_" + a),
						a = c.sizeTypeMatch(a);
					$(".J_size_helper_form_tips_wrap").html("");
					f.find(".J_size_helper_form_tips_wrap").html(b);
					f.addClass("z-ui-tooltips-in");
					f.find(".J_size_helper_form_tips_wrap").addClass("ui-tooltips-info")
						.removeClass("ui-tooltips-warning");
					f.find(".J_tips_content").html(a.title + "\uff1a" + a.tips)
				});
				$(document).on("click", ".J_size_form_save_btn, .J_size_form_save_btn_pop",
					function(b) {
						b.preventDefault();
						if (!$.Cookie.get("VipLID"))
							return e.redirect(),
								VIPSHOP.login.init({
									loginEvent: function() {
										VIPSHOP.member.chk();
										$(".J_size_form_save_btn").trigger("click");
										window.location.reload()
									}
								}),
								!1;
						var a = c.checkUserSizeForm(),
							f = $("#J-new-SizeHlper-tips-tmp").html(),
							d = "",
							n = "",
							d = {},
							n = "height weight chest shoulder waist hips".split(" ");
						if (200 == a.code)
							if ($(".J_size_form_item").removeClass(
									"z-ui-form-item-warning z-ui-tooltips-in"),
								a[0] && !a[0].flag) {
								n = $(".J_size_form_item_" + a[0].title);
								b = 0;
								for (var l = a.length; b < l; b++)
									d = $(".J_size_form_item_" + a[b].title),
									d.addClass("z-ui-form-item-warning");
								n.find(".J_size_helper_form_tips_wrap").html(f);
								n.addClass("z-ui-tooltips-in z-ui-form-item-warning");
								n.find(".J_size_helper_form_tips_wrap").addClass(
									"ui-tooltips-warning").removeClass("ui-tooltips-info");
								n.find(".J_tips_content").html(a[0].msg)
							} else {
								b = 0;
								for (a = n.length; b < a; b++)
									"chest" == n[b] ? c.loadedSizeInfo.bust = $(
										".J_size_form_input_" + n[b]).val() : "hips" == n[b] &&
									(c.loadedSizeInfo.hip = $(".J_size_form_input_" + n[b])
									.val()),
									d[n[b]] = $(".J_size_form_input_" + n[b]).val(),
									c.loadedSizeInfo[n[b]] = $(".J_size_form_input_" + n[b])
									.val(),
									c.loadedSizeInfo[n[b]] ? $(".J_size_table_" + n[b]).html(c
										.loadedSizeInfo[n[b]]) : $(".J_size_table_" + n[b])
									.html(
										'<span class="customer-size-helper-tobeadd">\u5f85\u8865\u5145</span>'
										);
								c.saveUserSizeInfo(c.isUserSizeInfoUpdate, d);
								c.getRecommendSizeV3(d);
								d.height && d.weight && d.shoulder && d.chest && d.waist && d
									.hips ? $(".J-customer-size-helper-table-expand").html(
										"\u4fee\u6539\u5c3a\u7801\u4fe1\u606f &gt;") : $(
										".J-customer-size-helper-table-expand").html(
										"\u8865\u5145\u5c3a\u7801\u4fe1\u606f\uff0c\u63a8\u8350\u66f4\u7cbe\u51c6 &gt;"
										);
								$.Listeners.pub("reRender.userSizeInfo.tooltips").success(d)
							}
						else
							304 == a.code && c.showSaveUserSizeTips(a.msg)
					});
				$(document).on("keyup", ".J_size_helper_form_input", function(b) {
					b.preventDefault();
					b = $(this).data("name");
					var a = $(this).val();
					$(".J_size_form_input_" + b).val(a)
				});
				$(document).on("click", ".J_go_similar_module", function(b) {
					b.preventDefault();
					$("html,body").animate({
						scrollTop: $("#J-FW-recomBox").offset().top
					}, 300)
				});
				$(document).on("click", ".J_recom_size_result", function(b) {
					b.preventDefault();
					b = $(this).data("recomsizeid");
					window.nsSizeStockMod.chooseSize($("#J-cartAdd-sizeID-" + b));
					c.newSizeHelperPop.isOpenFlag && c.newSizeHelperPop.close();
					$("html,body").animate({
						scrollTop: $("#J-proData-box").offset().top - 200
					}, 300)
				})
			},
			bindCustomEvents: function() {
				var c = this;
				$.Listeners.sub("has.size.table.data").onsuccess(function() {
					c.initSizeRecData()
				})
			},
			sizeTypeMatch: function(c) {
				var b = {
					title: "",
					tips: "",
					reg: ""
				};
				switch (c) {
					case "height":
						b.title = "\u8eab\u9ad8";
						b.tips = "50~200cm";
						b.reg = /^([5-9][0-9])$|^(1[0-9][0-9])$|^(200)$/;
						break;
					case "weight":
						b.title = "\u4f53\u91cd";
						b.tips = "30~120kg";
						b.reg = /^([3-9][0-9])$|^(1[01][0-9])$|^(120)$/;
						break;
					case "shoulder":
						b.title = "\u80a9\u5bbd";
						b.tips = "25~70cm";
						b.reg = /^(2[5-9])$|^([3-6][0-9])$|^(70)$/;
						break;
					case "chest":
						b.title = "\u80f8\u56f4";
						b.tips = "50~150cm";
						b.reg = /^([5-9][0-9])$|^(1[0-4][0-9])$|^(150)$/;
						break;
					case "waist":
						b.title = "\u8170\u56f4";
						b.tips = "50~150cm";
						b.reg = /^([5-9][0-9])$|^(1[0-4][0-9])$|^(150)$/;
						break;
					case "hips":
						b.title = "\u81c0\u56f4",
							b.tips = "50~250cm",
							b.reg = /^([5-9][0-9])$|^(1[0-9][0-9])$|^(2[0-4][0-9])$|^(250)$/
				}
				return b
			},
			initSizeRecData: function() {
				this.getRecommandSizeRecData()
			},
			initSizeHelperV3: function() {
				var c = this;
				c.showSizeHelperV3();
				c.newSizeHelperPop = $.Dialog({
					model: !0,
					opacity: 0.3,
					isFixed: !1,
					autoResize: !0,
					custom: !0,
					elStyle: "size-helper-dialog",
					content: template("J-new-sizeHelper-pop-tmp", {
						saveBtn: "J_size_form_save_btn_pop"
					}),
					showEvent: function() {
						0 < $(".J_size_helper_v3_cnt:visible").length && $(
							".J_size_helper_v3_cnt").removeClass("hidden");
						c.showSizeHelperV3();
						c.fillUserSizeForm(c.loadedSizeInfo);
						c.fillFormType();
						c.isExpandFlag && $(".J-customer-size-helper-box").addClass(
							"is-size-helper-form-expand").removeClass(
							"is-size-helper-form-close");
						c.getFiveSizeRecomData && c.getFiveSizeRecommendCB(c
							.getFiveSizeRecomData)
					}
				});
				$(document).on("click", ".J_go_similar_module_popBtn", function(b) {
					b.preventDefault();
					c.newSizeHelperPop.close();
					$("html,body").animate({
						scrollTop: $("#J-FW-recomBox").offset().top
					}, 500)
				});
				$.Listeners.pub("loadedSizeRecommand").success();
				c.vipRUID ? c.getUserSizeData() : $(".J_size_helper_v3_cnt").removeClass("hidden");
				$.Storage.get("hasShowSizeHelperV4Alert") || $(".J_new_size_helper_alert")
					.removeClass("hidden")
			},
			checkUserSizeForm: function() {
				var c =
					"\u8eab\u9ad8 \u4f53\u91cd \u80a9\u5bbd \u80f8\u56f4 \u8170\u56f4 \u81c0\u56f4"
					.split(" "),
					b = "height weight shoulder chest waist hips".split(" "),
					a = [],
					f = {
						flag: 1,
						title: "",
						msg: ""
					},
					d = "",
					f = !1,
					e = /^(\d)+$/;
				if (0 < this.lastSavedUserSizeInfo.length) {
					for (var l = 0, k = b.length; l < k; l++) {
						d = $(".J_size_form_input_" + b[l]).val();
						if (d != this.lastSavedUserSizeInfo[l]) {
							f = !1;
							break
						}
						f = !0
					}
					if (f)
						return a.code = 304,
							a.msg = "\u8bf7\u52ff\u91cd\u590d\u63d0\u4ea4",
							a
				}
				if (this.needFive)
					for (l = 0,
						k = b.length; l < k; l++)
						e = this.sizeTypeMatch(b[l]).reg,
						d = $(".J_size_form_input_" + b[l]).val(),
						e.test(d) || (f = {
								flag: 0,
								title: b[l],
								msg: "\u60a8\u8f93\u5165\u7684" + c[l] +
									"\u4e0d\u7b26\u5408\u8981\u6c42\uff01"
							},
							a.push(f)),
						this.lastSavedUserSizeInfo[l] = d;
				else
					for (l = 0,
						k = b.length; l < k; l++)
						d = $(".J_size_form_input_" + b[l]).val(),
						e = this.sizeTypeMatch(b[l]).reg,
						f = null,
						"height" == b[l] && "" == d ? f = {
							flag: 0,
							title: b[l],
							msg: c[l] + "\u4e0d\u80fd\u4e3a\u7a7a"
						} : "weight" == b[l] && "" == d ? f = {
							flag: 0,
							title: b[l],
							msg: c[l] + "\u4e0d\u80fd\u4e3a\u7a7a"
						} : "" == d || e.test(d) || (f = {
							flag: 0,
							title: b[l],
							msg: "\u60a8\u8f93\u5165\u7684" + c[l] +
								"\u4e0d\u7b26\u5408\u8981\u6c42\uff01"
						}),
						f && a.push(f),
						this.lastSavedUserSizeInfo[l] = d;
				a.code = 200;
				return a
			},
			getUserSizeData: function() {
				var c = this;
				$.ajax({
					url: c.pdcSizeRecommandApi,
					data: {
						act: "usersizeGet"
					},
					type: "get",
					dataType: "jsonp",
					cache: !1,
					success: function(b) {
						200 == b.code && (Validate.isObjEmpty(b.result) || (c
								.isUserSizeInfoUpdate = 1,
								c.userSizeInfo.id = b.result.id,
								c.userSizeInfo.origin = b.result.origin,
								c.fillUserSizeForm(b.result),
								c.getRecommendSizeV3(c.loadedSizeInfo),
								$.Listeners.pub("reRender.userSizeInfo.tooltips")
								.success(c.loadedSizeInfo),
								c.isUserSizeCompleted = b.result.height ? b.result
								.shoulder && b.result.bust && b.result.waist && b
								.result.hip ? 1 : 2 : 0,
								c.fillFormType()),
							c.fillFormType(),
							$(".J_size_helper_v3_cnt").removeClass("hidden"))
					},
					error: function() {
						c.isUserSizeCompleted = 0;
						c.fillFormType()
					}
				})
			},
			fillUserSizeForm: function(c) {
				for (var b = "shoulder height weight chest waist hips".split(" "), a =
						"shoulder height weight bust waist hip".split(" "), f, d = 0, e = b
						.length; d < e; d++)
					f = a[d],
					c[f] && (this.loadedSizeInfo[f] = c[f],
						$(".J_size_form_input_" + b[d]).val(c[f]),
						$(".J_size_table_" + b[d]).html(c[f])),
					this.lastSavedUserSizeInfo[d] = c[f]
			},
			fillFormType: function() {
				0 == this.isUserSizeCompleted ? ($(".J-customer-size-helper-box").addClass(
							"is-size-helper-form-expand-new"),
						this.vipRUID && $(".J_sizeTips_input").removeClass("hidden")) : 1 == this
					.isUserSizeCompleted && ($(".J-customer-size-helper-box").addClass(
							"is-size-helper-form-close").removeClass(
							"is-size-helper-form-expand-new is-size-helper-form-expand"),
						$(".J-customer-size-helper-table-expand").html(
							"\u4fee\u6539\u5c3a\u7801\u4fe1\u606f &gt;"),
						$(".J_new_size_helper_alert").addClass("hidden"));
				2 == this.isUserSizeCompleted && ($(".J_new_size_helper_alert").addClass("hidden"),
					$(".J-customer-size-helper-box").addClass("is-size-helper-form-close")
					.removeClass("is-size-helper-form-expand-new is-size-helper-form-expand"));
				$(".J_size_helper_v3_cnt").removeClass("hidden")
			},
			saveUserSizeInfo: function(c, b) {
				var a = this,
					f = {},
					f = {
						isUpdate: c,
						shoulder: b.shoulder,
						height: b.height,
						weight: b.weight,
						bust: b.chest,
						hip: b.hips,
						waist: b.waist,
						act: "usersizeInsertOrUpdate"
					};
				c && (f.id = a.userSizeInfo.id);
				$.ajax({
					url: a.pdcSizeRecommandApi,
					data: f,
					type: "get",
					cache: !1,
					dataType: "jsonp",
					success: function(d) {
						a.saveUserSizeInfoCB(d, b)
					},
					error: function(b) {
						a.showSaveUserSizeTips(
							"\u8bf7\u6c42\u8d85\u65f6\uff0c\u8bf7\u91cd\u8bd5!")
					}
				})
			},
			saveUserSizeInfoCB: function(c, b) {
				var a = this;
				200 == c.code && 1 == c.result ? a.showSaveUserSizeTips(
					"\u4fdd\u5b58\u6210\u529f") : 400 == c.code ? VIPSHOP.login.init({
						loginEvent: function() {
							VIPSHOP.member.chk();
							a.saveUserSizeInfo(a.isUserSizeInfoUpdate, b)
						}
					}) : 401 == c.code ? a.showSaveUserSizeTips(
						"\u6570\u636e\u6709\u8bef\uff0c\u8bf7\u91cd\u8bd5") : a
					.showSaveUserSizeTips("\u8bf7\u6c42\u8d85\u65f6\uff0c\u8bf7\u91cd\u8bd5")
			},
			showSaveUserSizeTips: function(c) {
				var b = $(".J_save_user_size_tips").outerWidth();
				$(".J_save_tips_content").html(c);
				this.isUserSizeCompleted ? $(".J_save_user_size_tips").css("margin-left", "-90px") :
					$(".J_save_user_size_tips").css("margin-left", "-" + b / 2 + "px");
				$(".J_save_user_size_tips").addClass("z-ui-tooltips-in");
				setTimeout(function() {
					$(".J_save_user_size_tips").removeClass("z-ui-tooltips-in")
				}, 3E3)
			},
			getRecommendSizeV3: function(c) {
				var b = this,
					a = {};
				nsMerchandiseMod.spuId && nsMerchandiseMod.mid && (a = {
						act: "getFiveSizeRecommend",
						heigh: c.height,
						weigh: c.weight,
						sizeTypeId: nsSizeStockMod.sizeTypeId,
						productId: nsMerchandiseMod.spuId,
						mid: nsMerchandiseMod.mid,
						userId: b.vipRUID
					},
					void 0 != c.shoulder && "" != c.shoulder ? a.shoulder = c.shoulder :
					void 0 != c.chest && "" != c.chest ? a.chest = c.chest : void 0 != c.bust &&
					"" != c.bust && (a.chest = c.bust),
					"" != c.waist && (a.waist = c.waist),
					void 0 != c.hips && "" != c.hips ? a.hips = c.hips : void 0 != c.hip &&
					"" != c.hip && (a.hips = c.hip),
					$.ajax({
						url: b.pdcSizeRecommandApi,
						type: "get",
						dataType: "jsonp",
						data: a,
						success: function(a) {
							200 == a.code && (b.getFiveSizeRecomData = a,
								b.getFiveSizeRecommendCB(a))
						}
					}))
			},
			getFiveSizeRecommendCB: function(c) {
				var b = c.result.recommendationSizes.length;
				if (200 == c.code && 0 < b) {
					var a, f = [],
						d = "";
					$(".J_new_size_helper_alert").addClass("hidden");
					$(".J_recom_size_result_container").html(" ");
					for (var e = 0; e < b; e++)
						f += c.result.recommendationSizes[e] + "\u3001",
						a =
						'<a href="###" class="size-helper-result-button J_recom_size_result" data-recomSizeId="' +
						c.result.recommendationSizeIds[e] + '" role="button" rel="nofollow">' + c
						.result.recommendationSizes[e] + "</a>",
						$(".J_recom_size_result_container").append(a),
						$("#J-cartAdd-sizeID-" + c.result.recommendationSizeIds[e]).hasClass(
							"sli-have-chance") || (d += "#J-cartAdd-sizeID-" + c.result
							.recommendationSizeIds[e] + ",");
					0 < f.length && (f = f.substr(0, f.length - 1));
					$(".J_sizeTips_recommend").removeClass("hidden");
					$(".J_recommend_size").html(f);
					$(".J-size-helper-reco-wrap").addClass("is-size-helper-form-result-success")
						.removeClass("is-size-helper-form-result-error hidden");
					b = 0;
					for (a = c.result.recommendationSizeIds.length; b < a; b++)
						this.recomSizeIds.push(parseInt(c.result.recommendationSizeIds[b]));
					d = d.substring(0, d.length - 1);
					$(".J-sizeID, .J-warm-s-item").removeClass("sli-recom").attr("mars_sead",
						"m_te_goods_buy_size_check").filter(d).attr("mars_sead",
						"m_te_goods_buy_size_check3").addClass("sli-recom");
					$.Listeners.pub("reRender.userSizeInfo.tooltips").success(this.loadedSizeInfo)
				} else
					$(".J-size-helper-reco-wrap").removeClass(
						"is-size-helper-form-result-success hidden").addClass(
						"is-size-helper-form-result-error")
			},
			getRecommandSizeRecData: function() {
				this.initSizeHelperV3()
			},
			showSizeHelperV3: function() {
				var c = $(".J_size_helper_v3_cnt"),
					b = $("#J_size_helper_V3_tmpl"),
					a = "";
				$("#J-sideAide-btn-con").remove();
				$(".J_size_helper_trigger").removeClass("hidden");
				c.html(b.html());
				a = template("J-new-sizeHelper-form-tmp", {});
				$(".J_size_helper_form_wrapper").html(a)
			},
			seeMoreEvent: function() {
				$(document).on("click", ".J-size-see-more", function() {
					null != nsSizeRecommandMod.sizeRecommandPop && nsSizeRecommandMod
						.sizeRecommandPop.close();
					$("html, body").stop(!1, !0).animate({
						scrollTop: $("#J-FW-recomBox").offset().top
					}, 300)
				})
			},
			checkRegExp: function(c) {
				return -1 != c.search(/\((.*?)\)/g) ? /\((.*?)\)/g : -1 != c.search(
						/\uff08(.*?)\)/g) ? /\uff08(.*?)\)/g : -1 != c.search(/\((.*?)\uff09/g) ?
					/\((.*?)\uff09/g : -1 != c.search(/\uff08(.*?)\uff09/g) ? /\uff08(.*?)\uff09/g :
					""
			}
		};
		h.exports = g
	}, {
		"../../../../plugins/modules/checkLogin/globalLogin.js": 94,
		"../../../../plugins/modules/template": 100,
		"../../../../plugins/modules/validate/validation": 107
	}],
	70: [function(g, h, p) {
		var e = g("../../../../plugins/modules/http/httpV2.js"),
			c = g("urlParam");
		h.exports = {
			sizeTableApiV3: "//mapi.vip.com/vips-mobile/rest/shopping/pc/detail/size_table/v3",
			event: {
				sub: {
					sizeTableV3Success: "sizeTableV3.success",
					sizeStockInitSuccess: "sizeStock.init.success",
					getInfoAndSkuSuccess: "getInfoAndSkuSuccess.detail.success",
					sizeInitFinish: "sizeInitFinish.finish"
				},
				pub: {
					sizeTableV3Success: "sizeTableV3.success",
					sizeTableV3Failed: "sizeTableV3.failed",
					hasSizeTable: "has.size.table.data",
					loadSizeTableSuccess: "load.size.table.success"
				}
			},
			havChanceSizeData: {
				count: 0
			},
			sizeItemsHtml: {},
			isUseSizeSelector: !1,
			sizeTableContent: {
				details: [],
				tips: "",
				sizeMeasurePic: "",
				titles: []
			},
			sizeTableData: {},
			init: function(b) {
				this.bindEventListeners()
			},
			bindEventListeners: function() {
				var b = this;
				$.Listeners.sub(b.event.sub.getInfoAndSkuSuccess).onsuccess(function(a) {
					if (a.product && a.pcSkuData && a.product.sizeTableId && "" != a.product
						.sizeTableId) {
						var f = c.get({
							sizeTableId: a.product.sizeTableId,
							productId: a.product.productIdStr,
							brandId: a.product.brandIdStr,
							spuId: a.product.spuId,
							functions: "sizeMeasurePic"
						});
						a.pcSkuData && a.pcSkuData.skus && 12 < Object.keys(a.pcSkuData
							.skus).length && (b.isUseSizeSelector = 1);
						e({
							url: b.sizeTableApiV3,
							data: f,
							jsonp: "callback",
							jsonpCallback: "sizeTableV3",
							dataType: "jsonp",
							cache: !0,
							timeout: 8E3,
							ajaxTryTimes: 1,
							code: "getSizeTableV3_ajax_err",
							successCallback: function(a) {
								1 == a.code && a.data ? b.rendorSizeTableV3(a
									.data) : $.Listeners.pub(b.event.pub
									.sizeTableV3Failed).success()
							},
							errorCallback: function() {
								$.Listeners.pub(b.event.pub.sizeTableV3Failed)
									.success()
							}
						})
					}
				});
				$.Listeners.sub(b.event.sub.sizeStockInitSuccess, b.event.pub.sizeTableV3Success)
					.onsuccess(function(a) {
						b.initSizeDataV3(b.sizeTableContent, a);
						$.Listeners.sub(b.event.sub.sizeInitFinish).onsuccess(function(a) {
							b.initSizeTips(b.sizeTableContent, a)
						})
					})
			},
			rendorSizeTableV3: function(b) {
				var a = $(".J-wrap-sizeTable"),
					c = "";
				$(".J_dc_tip").on("mouseenter", function() {
					$(".J_size_tips").addClass("z-ui-tooltips-in")
				}).on("mouseleave", function() {
					$(".J_size_tips").removeClass("z-ui-tooltips-in")
				});
				this.setSizeTableDataV3(b);
				nsMerchandiseMod.sizeType = "array";
				a.html($("#J-wrap-sizeTemplate").html());
				this.rendorSizeContent(this.sizeTableContent);
				0 < this.sizeTableContent.details.length && $.Listeners.pub(this.event.pub
					.hasSizeTable).success();
				"" != this.sizeTableContent.sizeMeasurePic && (c = $.Template({
						templateElement: $("#J_measure_pic_tmpl"),
						replace: null
					}).process({
						picSrc: this.sizeTableContent.sizeMeasurePic
					}),
					a.append(c));
				this.renderSizeTableAfterV3();
				this.showSizeTableV3();
				$.Listeners.pub(this.event.pub.sizeTableV3Success).success();
				$.Listeners.pub(this.event.pub.loadSizeTableSuccess).success()
			},
			setSizeTableDataV3: function(b) {
				var a = [];
				if (0 < Object.keys(b.details).length) {
					var c = 0,
						d;
					for (d in b.details)
						b.details.hasOwnProperty(d) && (0 == c && b.details[d].dimension && (this
								.sizeTableContent.titles = b.details[d].dimension.split(",")),
							c++,
							a.push(b.details[d]));
					this.sizeTableContent.details = a.sort(function(a, b) {
						return a.sizeDetailOrder - b.sizeDetailOrder
					})
				} else
					$("#J_sizetable_detail").addClass("hidden");
				b.tips && (this.sizeTableContent.tips = b.tips);
				b.sizeMeasurePic && (this.sizeTableContent.sizeMeasurePic = b.sizeMeasurePic
					.replace(/^http:|https:/i, ""))
			},
			rendorSizeContent: function(b) {
				_this = this;
				var a, c = b.details.length,
					d = b.titles.length;
				a = '<tr class="J-size-tr pro-size-tab-bg-a" ><td>\u5c3a\u7801</td>';
				for (var e = 0; e < d; e++)
					a += "<td>" + b.titles[e] + "</td>";
				a += "</tr>";
				for (k = 0; k < c; k++) {
					a += '<tr class="J-size-tr J-sizeId-' + b.details[k].id + '">';
					a += "<td>" + b.details[k].name + "</td>";
					for (e = 0; e < d; e++) {
						var l = b.titles[e];
						a = b.details[k].propertyValues.hasOwnProperty(l) ? a + ("<td>" + b.details[
							k].propertyValues[l] + "</td>") : a + "<td>/</td>"
					}
					a += "</tr>"
				}
				$(".J_size_table_body").prepend(a);
				if (4 < $(".J_size_table_body").find(".J-size-tr").length) {
					a = $(".J_size_table_body").find(".J-size-tr").length;
					for (var k = 4; k < a; k++)
						$(".J_size_table_body").find(".J-size-tr").eq(k).addClass("size-hidden");
					$(".J_size_tips_wrap").addClass("hidden");
					$(".J_size_more").removeClass("hidden")
				}
				$(".J_size_more").click(function() {
					$(".J-wrap-sizeTable").addClass("size-table-more");
					$(".J_size_up").removeClass("hidden");
					$(".J_size_more").addClass("hidden")
				});
				$(".J_size_up").click(function() {
					$(".J-wrap-sizeTable").removeClass("size-table-more");
					$(".J_size_up").addClass("hidden");
					$(".J_size_more").removeClass("hidden")
				});
				_this.sizeTableColspan = d + 1;
				"" != b.tips ? (d = _this.sizeTableColspan,
						$(".J_size_table_tips").append(b.tips).attr("colspan", d),
						$(".J_size_tips_wrap").removeClass("hidden")) : $(".J_size_tips_wrap")
					.addClass("hidden")
			},
			showSizeTableV3: function() {
				$(".J-dc-tit-new").removeClass("hidden")
			},
			renderSizeTableAfterV3: function() {
				$(".J-wrap-sizeTable");
				$.Listeners.sub("loadSizeRecommandErr").onsuccess(function() {
					$("#J-check-sizetable").show()
				})
			},
			initSizeDataV3: function(b, a) {
				var c = {},
					d = {};
				if (a && a.skus)
					for (var e in a.skus)
						if (a.skus.hasOwnProperty(e)) {
							var l = this.explainSkuKey(e),
								k = a.saleProps,
								g = "",
								m;
							for (m in k)
								if (453 == k[m].id && l.hasOwnProperty(k[m].pid)) {
									var q = k[m].values,
										r;
									for (r in q)
										q[r].vid == l[k[m].pid] && (g = q[r].sizeTableDetailId)
								}
							d[a.skus[e].msizeId] = g
						}
				if (b.details)
					for (e in l = b.details,
						k = b.titles,
						g = k.length,
						d)
						if (d.hasOwnProperty(e))
							for (r = l.length,
								m = 0; m < r; m++)
								if (l[m].id == d[e]) {
									c[e] = {
										name: l[m].name,
										size_item: []
									};
									m = l[m].propertyValues;
									for (r = 0; r < g; r++)
										m.hasOwnProperty(k[r]) && c[e].size_item.push({
											item_name: k[r],
											item_val: m[k[r]]
										});
									break
								}
				nsSizeStockMod.sizeTableData = c
			},
			explainSkuKey: function(b) {
				var a = {};
				b = b.split(";");
				for (var c in b) {
					var d = b[c].toString().split(":");
					1 < d.length && (a[d[0]] = d[1])
				}
				return a
			},
			initSizeTips: function(b, a) {
				if (a.pcSizeData) {
					for (var c = nsSizeStockMod.stockData, d = a.pcSizeData.sizeList, e = d.length,
							l = 0, k = 0; k < e; k++) {
						var g = c[d[k].id];
						g && 1 == g.type && (g.type = 2);
						g && 2 == g.type && $("#J-cartAdd-sizeID-" + d[k].id).show().end().find(
							".J-btn-popup-waitlist, .J-nosizeData-item").hide()
					}
					for (var m in c)
						if (1 == c[m].type && (c[m].type = 2),
							2 == c[m].type) {
							_this.havChanceSizeData.count++;
							_this.havChanceSizeData[m] = c[m];
							_this.havChanceSizeData[m].haveInListCls = "";
							for (k = 0; k < e; k++)
								if (m == d[k].id) {
									_this.havChanceSizeData[m].haveInListCls =
										"sli-have-chance sli-disabled";
									l++;
									break
								}
							k = $("#J-cartAdd-sizeID-" + m).data("sizeName") + "" || $(
								"#J-cartAdd-sizeID").find("option[value=" + m + "]").html();
							_this.havChanceSizeData[m].name = k.toString().replace(
								" - \u5df2\u552e\u5b8c", "").replace(" - \u6709\u673a\u4f1a",
								"");
							_this.havChanceSizeData[m].id = m;
							showFlag = !0
						}
					12 >= e && (_this.sizeData_process("#J-cartAdd-sizeID-"),
						_this.rePositionSizeTips());
					$.Listeners.sub("reRender.userSizeInfo.tooltips").onsuccess(function(a) {
						var b = nsSizeStockMod.sizeTableData;
						a.bust && (a.chest = a.bust);
						a.hip && (a.hips = a.hip);
						if (!a.chest && !a.waist && !a.hips)
							return !1;
						for (var d in b)
							_this.userSizeInfo = a,
							(b = _this.generateHoverSizeTable(d, a)) && $(
								".J_newTipsBox_tbody_" + d).html(b)
					})
				}
			},
			sizeData_process: function(b) {
				var a = this,
					c = nsSizeStockMod.stockData,
					d = nsSizeStockMod.sizeTableData,
					e = a.sizeItemsHtml,
					l = ".J-sizeID",
					k;
				if ($.isEmptyObject(e))
					if ($.isEmptyObject(d))
						e = $("#J-nosizeID-haveChance-newTipsBox"),
						$(".J-sizeID").each(function() {
							var b = $(this).data("id");
							if (nsReserveMod.belongToReserve(b))
								return !0;
							a.sizeItemsHtml[b] = ""
						});
					else {
						e = $("#J-nosizeID-haveChance-newTipsBox");
						k = $("#J-size-newTipsBox");
						for (var g in d)
							if (0 !== d[g].size_item.length) {
								var m = c[g],
									q = $(b + g),
									r = $.extend({
										sizeId: g
									}, d[g]),
									h = "",
									m = m && 2 == m.type ? e : k;
								0 == a.appShopGoodsRemindSwitch && (r.waitTips = "hidden");
								h = $.Template({
									templateElement: m,
									replace: null
								}).process(r);
								q.append(h);
								a.sizeItemsHtml[g] = h;
								m = a.generateHoverSizeTable(g, a.userSizeInfo);
								$(".J_newTipsBox_tbody_" + g).append(m);
								2 != r.size_item.length && 4 != r.size_item.length || q.addClass(
									"size-list-item-small")
							}
						$.Listeners.sub("detail.hasChance").onsuccess(function(a) {
							0 == a.canBuySizeArr.length && 0 !== a.hasChanceSizeArr
								.length && $(".J-size-see-more").addClass("hidden")
						})
					}
				else {
					for (g in e)
						$("#J-cartAdd-sizeID-" + g).append(e[g]);
					l = ".-diaContent " + l
				}
				if (!nsMerchandiseMod.isUseSizeSelector)
					for (b = nsMerchandiseMod.curSizeCount,
						c = 0,
						d = nsMerchandiseMod.curSizeCount; c < d; c++)
						$(l).eq(c).css("zIndex", b),
						b--
			},
			generateHoverSizeTable: function(b, a) {
				var c = nsSizeStockMod.sizeTableData[b],
					d = [" "],
					e = ["\u670d\u88c5\u53c2\u6570"],
					l = 0,
					k = 0,
					g = 0;
				if (void 0 == c)
					return !1;
				for (var m = 0, q = c.size_item.length; m < q; m++)
					d.push(c.size_item[m].item_name),
					e.push(c.size_item[m].item_val);
				for (var c = "<tr>", m = 0, r = d.length; m < r; m++)
					if ("\u80f8\u56f4" == d[m] || "\u8170\u56f4" == d[m] || "\u81c0\u56f4" == d[m])
						switch (c += '<th data-index="' + m + '">' + d[m] + "</th>",
							d[m]) {
							case "\u80f8\u56f4":
								l = m;
								break;
							case "\u8170\u56f4":
								k = m;
								break;
							case "\u81c0\u56f4":
								g = m
						}
				else
					c += "<th>" + d[m] + "</th>";
				c += "</tr><tr>";
				d = 0;
				for (m = e.length; d < m; d++)
					c += "<td>" + e[d] + "</td>";
				c += "</tr>";
				if (a && -1 < $.inArray(parseInt(b), nsSizeRecommandMod.recomSizeIds)) {
					if (!(l && a.chest || k && a.waist || g && a.hips))
						return !1;
					e = ["\u6211\u7684\u53c2\u6570"];
					for (d = 0; d < q; d++)
						e.push(" ");
					if (l || k || g) {
						0 != l && void 0 != a.chest && "" != a.chest && (e[l] = a.chest);
						0 != k && void 0 != a.waist && "" != a.waist && (e[k] = a.waist);
						0 != g && void 0 != a.hips && "" != a.hips && (e[g] = a.hips);
						c += "<tr>";
						l = 0;
						for (k = e.length; l < k; l++)
							c += "<td>" + e[l] + "</td>";
						c += "</tr>"
					}
				}
				return c
			},
			rePositionSizeTips: function() {
				var b = window.nsSizeStockMod.sizeTableData,
					a;
				if (Validate.isObjEmpty(b)) {
					a = $(".J_size_guide_tolltips");
					for (var c = 0, d = a.length; c < d; c++)
						b = $(a[c]).outerWidth(),
						$(a[c]).css("margin-left", "-" + b / 2 + "px")
				} else
					for (c in b)
						a = $("#J-cartAdd-sizeID-" + c).find(".J_size_guide_tolltips"),
						b = a.outerWidth(),
						a.css("margin-left", "-" + b / 2 + "px")
			}
		}
	}, {
		"../../../../plugins/modules/http/httpV2.js": 96,
		urlParam: 110
	}],
	71: [function(g, h, p) {
		var e = g("../../../../plugins/modules/template/index.js"),
			c = g("../../../../plugins/modules/http/httpV2.js"),
			b = g("urlParam"),
			a = {
				0: "",
				1: "\u81ea\u52a8\u62a2\u8d27",
				2: "\u62a2\u8d27\u4e2d"
			},
			f = {
				0: "",
				1: "sli-can-reserve",
				2: "sli-has-reserved"
			};
		h.exports = {
			templateLoaded: !1,
			reservedMap: {},
			$openedTipEl: null,
			init: function(a) {
				var b = this;
				$.Loader.pagelet({
					name: "reserve",
					html: "//shop.vipstatic.com/html/public/shop/reserve-hash-510f3ca3.js?" +
						VIPSHOP.jsVer,
					css: [],
					js: function() {},
					callback: function(a) {
						$("body").append(a);
						b.templateLoaded = !0
					}
				});
				this._getReservedData(a);
				$(document).on("click", function(a) {
					a = $(a.target);
					var d = b.$openedTipEl;
					d && !a.is(d) && 0 === d.has(a).length && b._hideOpenedTip()
				})
			},
			handleSize: function(a, b) {
				var c = this._getItemById(b);
				c && a.addClass(c.className).prepend('<span class="i-reserve">' + c.stateTextFix +
					"</span>")
			},
			belongToReserve: function(a) {
				a = this._getItemById(a);
				if (!a)
					return !1;
				a = a.state;
				return 1 === a || 2 === a
			},
			belongToCanReserve: function(a) {
				return (a = this._getItemById(a)) ? 1 === a.state : !1
			},
			belongToHasReserved: function(a) {
				return (a = this._getItemById(a)) ? 2 === a.state : !1
			},
			reserve: function(a) {
				if (this.templateLoaded && !a.is(this.$openedTipEl)) {
					this._hideOpenedTip();
					var b = this,
						c = a.data("id") || a.data("val"),
						f = this._getItemById(c);
					f && (f.hasQrcode || (f.hasClicked || (f.hasClicked = !0,
								a.append(e("J-size-reserve", {
									id: c
								})).find(".size-reserve-tooltips").on("click", function(a) {
									a.stopPropagation()
								}).find(".size-reserve-close").on("click", function() {
									b._hideTip(a)
								})),
							this._getQrcode({
								id: c,
								$el: a
							})),
						this._showTip(a))
				}
			},
			_getQrcode: function(a) {
				function f(b) {
					g.html(e("J-size-reserve-qrcode", {
						src: b,
						loading: !1
					}));
					if (!b)
						g.find(".size-reserve-qrcode-reload").on("click", function() {
							l._getQrcode(a)
						})
				}
				var l = this,
					k = a.id,
					g = a.$el.find(".size-reserve-qrcode-box"),
					m, q = this._getItemById(k);
				g.html(e("J-size-reserve-qrcode", {
					loading: !0
				}));
				$.Listeners.sub("buyLimit.num").onsuccess(function(a) {
					m = a.buyLimitMin
				});
				k = "pages/index/index?$route=" + encodeURIComponent(
					"pages/checkout/pay_page/index?size_id=" + k + "&size_num=" + m +
					"&is_independent=1&isPreBuy=1");
				k = b.get({
					hash: "ptx26",
					page: "pages/qrCodeRouter/qrCodeRouter",
					str: k
				});
				c({
					url: "//mapi.vip.com/vips-mobile/rest/shopping/wxcode/pc/getWxACodeShare/v1",
					data: k,
					jsonpCallback: "get_qrcode",
					successCallback: function(a) {
						1 === a.code && a.data.pic ? (q.hasQrcode = !0,
							f("data:image/png;base64," + a.data.pic)) : f()
					},
					errorCallback: function() {
						f()
					}
				})
			},
			_hideOpenedTip: function() {
				this.$openedTipEl && this._hideTip(this.$openedTipEl)
			},
			_showTip: function(a) {
				a.addClass("show-reserve-tooltips");
				this.$openedTipEl = a
			},
			_hideTip: function(a) {
				a.removeClass("show-reserve-tooltips");
				this.$openedTipEl = null
			},
			_getReservedData: function(b) {
				if (b) {
					var c = this;
					$.each(b, function(b, d) {
						var e = d.reservedState;
						c.reservedMap[d.msizeId] = {
							state: e,
							stateText: d.reservedStateText,
							stateTextFix: a[e],
							className: f[e],
							id: d.msizeId
						}
					})
				}
			},
			_getItemById: function(a) {
				return this.reservedMap[a]
			}
		}
	}, {
		"../../../../plugins/modules/http/httpV2.js": 96,
		"../../../../plugins/modules/template/index.js": 100,
		urlParam: 110
	}],
	72: [function(g, h, p) {
		var e = g("../../../../shop/addressCookie");
		g("../../../../shop/stockMod");
		var c = g("./reserveMod"),
			b = g("../../../../plugins/modules/http/httpV2.js"),
			a = g("urlParam");
		h.exports = {
			userType: 1,
			stockMerchandiseApi: "//stock.vip.com/merchandise",
			stockListApi: "//stock.vip.com/list/",
			stockDetailApi: "//stock.vip.com/detail/",
			isAreaStock: VIPSHOP.isAreaStock,
			sizeTableApi: "//detail.vip.com/detail-ajax.php",
			sizeTableData: {},
			sizeTableColspan: 0,
			stockData: {},
			initCal: null,
			getStockDetailDataCB: null,
			chooseSize: null,
			marsCid: 0,
			isUseNewSizeHelper: 2,
			sizeTypeId: 0,
			sizeRecomV3Switcher: 0,
			merchandiseUseNew: 0,
			minBuy: 0,
			min: 1,
			canBuy: !0,
			data: {
				selectedSizeId: null,
				isUseSizeSelector: 0
			},
			productInfo: {},
			event: {
				sub: {
					sizeTableV3Failed: "sizeTableV3.failed",
					sizeTableV3Success: "sizeTableV3.success",
					sizeInitFinish: "sizeInitFinish.finish"
				},
				pub: {
					sizeStockInitSuccess: "sizeStock.init.success",
					getSpuStockSuccess: "getSpuStock.success"
				}
			},
			url: {
				singleSpuGet: "//mapi.vip.com/vips-mobile/rest/stock/pc/goods/singleSpu/get"
			},
			data: {
				sumData: {}
			},
			init: function() {
				var a = this;
				$.Listeners.sub(a.event.sub.sizeInitFinish).onsuccess(function(b) {
					var c = b.data;
					a.data.sumData = c;
					12 < b.pcSizeData.sizeCount && (a.data.isUseSizeSelector = 1);
					c.product && (b = c.product,
						a.userType = a.getUserType(),
						3 != b.detailStatus || 1 != $(".J-warm-s-item").length || $(
							".J-warm-s-item").hasClass("sli-disabled") || ($(
								".J-warm-s-item").addClass("sli-selected"),
							a.chooseSize($(".J-warm-s-item"))),
						$.Listeners.sub("buyLimit.num").onsuccess(function(b) {
							b.buyLimitMin && (a.min = b.buyLimitMin)
						}),
						0 == b.detailStatus ? (a.initCal && a.initCal(),
							I_query.preview ? a.getStockDetailDataCBE() : a
							.getStockDetailData(c)) : 2 == b.detailStatus && (1 ==
							nsMerchandiseMod.isPrePay && a.processWarmPrepayInfo(),
							a.getStockDetailData(c),
							a.data.isUseSizeSelector && $("#J-cartAdd-sizeID")
						.Selector({
								clone: "#J-cartAdd-vSizeID",
								classPre: "selector",
								defTxt: "- \u8bf7\u9009\u62e9 -",
								evtChoose: function() {
									a.chooseSize($("#J-cartAdd-sizeID"))
								}
							}),
							window.nsMerchandiseMod.isUseColorSelector && $(
								"#J_multi_color_selector").Selector({
								clone: "#J-muli_color-item",
								classPre: "selector",
								defTxt: $(
									"#J_multi_color_selector option.color-selected"
									).text(),
								evtChoose: function(a) {
									a = $(a.target);
									location.href = a.data("val")
								}
							})),
						a.bindCustomEvents(),
						$.Listeners.pub(a.event.pub.sizeStockInitSuccess).success(c
							.pcSkuData))
				})
			},
			bindCustomEvents: function() {
				var a = this;
				$.Listeners.sub("load.size.recommand.fail").onsuccess(function() {
					$(".J-sideAide-btn-con").addClass("hidden")
				});
				$.Listeners.sub(a.event.sub.sizeTableV3Failed).onsuccess(function(b) {
					a.hideSizeHelperV3();
					a.hideSizeHelper()
				})
			},
			getUserType: function() {
				var a = 0;
				VIPSHOP.Member.rule._oldUser = ["c", "c1", "c3"];
				VIPSHOP.Member.is("_oldUser", "suc") && (a = 1);
				return a
			},
			getStockDetailData: function(a) {
				if (a && a.product) {
					var d = this;
					a = {
						merchandiseId: a.product.productIdStr,
						is_old: d.userType
					};
					1 == d.isAreaStock && (a.areaId = e.getListAreaId());
					b({
						url: d.stockDetailApi,
						data: a,
						dataType: "jsonp",
						jsonpCallback: "stock_detail",
						timeout: 6E3,
						cache: !1,
						code: "stock_detail_ajax_error",
						successCallback: function(a) {
							0 < a.items.length && (d.minBuy = a.items[0].min,
								d.rerenderSizeArea(a));
							d.getStockDetailDataCB(a);
							$.Listeners.pub("detail.goods.stock").success(a)
						},
						errorCallback: function(a) {
							d.getStockDetailDataCBE()
						}
					})
				}
			},
			getSingleSpuData: function(c) {
				var d = this;
				c = a.get({
					brand_id: c.product.brandIdStr,
					spu_id: c.product.spuId,
					is_mobile: 0
				});
				b({
					url: d.url.singleSpuGet,
					data: c,
					jsonp: "callback",
					jsonpCallback: "getSingleSpuDataCB",
					dataType: "jsonp",
					cache: !0,
					timeout: 8E3,
					ajaxTryTimes: 1,
					code: "getSingleSpuData_ajax_err",
					successCallback: function(a) {
						1 == a.code && a.data && $.Listeners.pub(d.event.pub
							.getSpuStockSuccess).success(a.data)
					}
				})
			},
			getStockDetailDataCBE: function() {
				var a = {
					items: []
				};
				this.data.isUseSizeSelector ? $("#J-cartAdd-sizeID").find("option").each(
			function() {
					a.items.push({
						id: $(this).val(),
						idStr: $(this).val(),
						name: $(this).html(),
						stock: 1,
						min: 1,
						max: 1,
						type: 0,
						ptype: 1
					})
				}) : $(".J-sizeID").each(function() {
					a.items.push({
						id: $(this).data("id"),
						idStr: $(this).data("id"),
						name: $(this).data("sizeName"),
						stock: 1,
						min: 1,
						max: 1,
						type: 0,
						ptype: 1
					})
				});
				this.getStockDetailDataCB(a)
			},
			rerenderSizeArea: function(a) {
				var b = {};
				a = a.items || {};
				var e = [],
					l;
				for (l in a)
					b[a[l].idStr] = a[l].stock;
				$(".J-sizeID").each(function(a) {
					a = $(this).data("id");
					e.push(a)
				});
				for (l = 0; l < e.length; l++)
					if (a = e[l],
						"undefined" == typeof b[a] || 0 >= b[a]) {
						if (c.belongToReserve(a))
							break;
						$("#J-cartAdd-sizeID-" + e[l]).addClass("sli-disabled")
					}
			},
			hideSizeHelperV3: function() {
				$(".J_size_helper_table_wrapper").addClass("hidden");
				$(".J_size_helper_trigger").addClass("hidden")
			},
			hideSizeHelper: function() {
				$(".J-sideAide-btn-con").addClass("hidden")
			},
			initCal: function() {
				var a = this;
				a.data.isUseSizeSelector || (nsMerchandiseMod.selectedSize = -1,
					$(document).on("click", ".J-sizeID", function(a) {
						a = $(this);
						var b = a.data("id");
						c.belongToCanReserve(b) ? c.reserve(a) : c.belongToHasReserved(b) ||
							nsSizeStockMod.chooseSize(a)
					}));
				$.Listeners.sub("stockData").onsuccess(function() {
					a.data.isUseSizeSelector && $("#J-cartAdd-sizeID").Selector({
						clone: "#J-cartAdd-vSizeID",
						classPre: "selector",
						defTxt: "- \u8bf7\u9009\u62e9 -",
						evtChoose: function() {
							window.nsSizeStockMod.chooseSize($(
								"#J-cartAdd-sizeID"))
						}
					});
					window.nsMerchandiseMod.isUseColorSelector && $(
						"#J_multi_color_selector").Selector({
						clone: "#J-muli_color-item",
						classPre: "selector",
						defTxt: $("#J_multi_color_selector option.color-selected")
							.text(),
						evtChoose: function(a) {
							a = $(a.target);
							location.href = a.data("val")
						}
					})
				})
			},
			getStockDetailDataCB: function(a) {
				for (var b = 0, e = [], l = [], k = [], g = a.items.length, m, q = 0; q < g; q++) {
					var r = a.items[q].idStr,
						h = c.belongToReserve(r),
						s = $("#J-cartAdd-sizeID-" + r);
					m = parseInt(a.items[q].min);
					var u = parseInt(a.items[q].max),
						p = parseInt(a.items[q].stock),
						v = parseInt(a.items[q].type),
						b = b + parseInt(a.items[q].stock);
					this.stockData[r] = {
						min: m,
						max: u,
						stock: p,
						type: v
					};
					1 == window.appShopHasGoodsRemind && 1 == v && (v = 2);
					this.min > p && (v = 1);
					switch (v) {
						case 0:
							nsMerchandiseMod.stockStatus = 0;
							this.data.isUseSizeSelector || s.data({
								min: m,
								max: u,
								stock: p
							});
							e.push(r);
							break;
						case 1:
							m = s.text();
							this.data.isUseSizeSelector ? -1 == m.indexOf("\u5df2\u552e\u5b8c") && s
								.html(s.html() + " - \u5df2\u552e\u5b8c") : h ? c.handleSize(s, r) :
								s.addClass("sli-disabled");
							k.push(r);
							break;
						case 2:
							this.data.isUseSizeSelector ? s.html(s.html() +
								" - \u6709\u673a\u4f1a") : h ? c.handleSize(s, r) : s.addClass(
									"sli-have-chance"),
								l.push(r)
					}
				}
				$.Listeners.pub("detail.hasChance").success({
					canBuySizeArr: e,
					hasChanceSizeArr: l
				});
				0 < g && a.items[0].ptype && (nsMerchandiseMod.less_stock = !0,
					$("#J-proStock-type").html(nsMerchandiseMod.less_stock_tips[1]).show());
				0 < l.length && (nsMerchandiseMod.hasChanceSize = !0,
					nsMerchandiseMod.chanceSizeCount = l.length);
				0 == e.length ? (nsSizeStockMod.canBuy = !1,
						nsLoanMod.open && $(".J-i-loan").addClass("hidden"),
						0 == l.length ? (nsMerchandiseMod.stockStatus = -1,
							$("#J-dt-cart-btn").addClass("ui-btn-disable"),
							$("#J-mer-saleTag").addClass("soldout-tag").removeClass(
								"soldchance-tag").show(),
							$("#J_add_fav_wrapper").removeClass("f-hide"),
							(1 == nsMerchandiseMod.is_device && 0 != $("#J_address_box").data(
								"id") || !1 != this.data.sumData.brand.store && 0 < this.data
								.sumData.product.saleAreaId) && $(".J_delivery_error_tips")
							.hasClass("hidden") && $(".J_delivery_stock_tips").removeClass("hidden")
							) : (nsMerchandiseMod.stockStatus = 1,
							$("#J-mer-saleTag").addClass("soldchance-tag").removeClass(
								"soldout-tag").show(),
							$("#J_add_fav_wrapper").removeClass("f-hide")),
						this.data.isUseSizeSelector && ($("#J-cartAdd-sizeID, .J-topBarAdd-sizeID")
							.data("options", a.items),
							nsMerchandiseMod.selectorOptionHtml = $("#J-cartAdd-sizeID").html()),
						nsMerchandiseMod.setStatus_saleOut()) : this.data.isUseSizeSelector ? ($(
							"#J-cartAdd-sizeID, .J-topBarAdd-sizeID").data("options", a.items),
						nsMerchandiseMod.selectorOptionHtml = $("#J-cartAdd-sizeID").html()) : 1 ==
					e.length && this.chooseSize($("#J-cartAdd-sizeID-" + e[0]));
				$.Listeners.pub("stock_status").success({
					status: 0,
					total: b,
					canBuySizeNum: e.length,
					hasChanceSize: l.length,
					saleOutSize: k.length
				});
				$.Listeners.pub("stockData").success(this.stockData);
				window.mars_var = $.extend(window.mars_var, {
					stock_info: []
				});
				$(a.items).each(function(a, b) {
					mars_var.stock_info.push({
						size_id: b.id,
						stock_num: b.stock
					})
				});
				$("#J-cartAdd-frm").find(".J-radio").remove()
			},
			chooseSize: function(a) {
				var b = a.find("option:selected").html(),
					c = $("#J-cartAdd-vSizeID"),
					e = nsSizeStockMod.stockData,
					k;
				a.hasClass("sli-have-chance") || a.hasClass("sli-disabled") || (0 < c.length && c
					.attr({
						title: b
					}),
					this.data.isUseSizeSelector ? k = $("#J-cartAdd-sizeID").val() : (k = a
						.data("id") || a.data("val"),
						$.Listeners.sub("stockData").onsuccess(function() {
							e[k] && 0 < e[k].max && ($(".J-sizeID").removeClass(
									"sli-selected"),
								$("#J-cartAdd-sizeID-" + k + ", #J-topBarAdd-sizeID-" +
									k).addClass("sli-selected"))
						})),
					nsMerchandiseMod.selectedSize = k,
					$.Listeners.pub("choose.size.success").success({
						sizeId: k
					}),
					$.Listeners.sub("stockData").onsuccess(function() {
						var a = nsSizeStockMod.stockData,
							b = nsMerchandiseMod.selectedSize,
							d = 0;
						a[b] && (d = "undefined" != typeof a[b].stock ? a[b].stock : 2);
						nsMerchandiseMod.selectedSizeStock = d;
						0 < d && 10 >= d ? ($("#J-proStock-type, #J-topbarProStock-type")
							.html(nsMerchandiseMod.less_stock_tips[0]).find("span")
							.html(d).end().show(),
							nsMerchandiseMod.less_stock = !0) : $(
							"#J-proStock-type, #J-topbarProStock-type").hide();
						nsProNumMod.bindCustomEvent(d);
						0 < d && $("#J-button-box").show()
					}),
					$(".J-sizeArea-wrap").removeClass("status-notice"),
					$.Listeners.pub("creat_code", "creat_code_xinyi").success({
						brandId: nsMerchandiseMod.bid,
						productId: nsMerchandiseMod.mid,
						skuId: nsMerchandiseMod.selectedSize,
						wh: $.Cookie.get("vip_wh")
					}),
					nsTopbarMod.scrollStart = $(".FW-detail").offset().top,
					2 != nsMerchandiseMod.brandStatus && 1 < nsMerchandiseMod.curSizeCount && $
					.Listeners.pub("request.loan.info").success())
			}
		}
	}, {
		"../../../../plugins/modules/http/httpV2.js": 96,
		"../../../../shop/addressCookie": 111,
		"../../../../shop/stockMod": 121,
		"./reserveMod": 71,
		urlParam: 110
	}],
	73: [function(g, h, p) {
		var e = g("../../../../plugins/modules/http/httpV2.js"),
			c = {
				weekDays: "\u65e5\u4e00\u4e8c\u4e09\u56db\u4e94\u516d".split(""),
				srsData: "",
				canRenderSRS: !0,
				isFreight: 0,
				oxoSaleArea: 0,
				isOxo: 0,
				event: {
					sub: {
						sizeInitFinish: "sizeInitFinish.finish",
						getSkuDeliverSuccess: "get.skuDelivery.data"
					},
					pub: {
						getSkuDeliverSuccess: "get.skuDelivery.data"
					}
				},
				data: {
					sumData: {},
					isUseSizeSelector: 0,
					isPrepay: 0,
					spuId: "",
					sizeData: {},
					saleStyleGlobal: 0,
					isPreSale: 0,
					srsAjaxdata: {}
				},
				init: function() {
					this.subEvents()
				},
				subEvents: function() {
					var b = this;
					$.Listeners.sub(b.event.sub.sizeInitFinish).onsuccess(function(a) {
						var c = a.data;
						b.data.sumData = c;
						if (c.product) {
							var d = c.product;
							a = a.pcSizeData;
							b.data.sizeData = a;
							12 < a.sizeCount && (b.data.isUseSizeSelector = 1);
							c.pcSkuData && c.pcSkuData.product_price_range_mapping[d
								.productIdStr] && (b.data.isPrepay = c.pcSkuData
								.product_price_range_mapping[d.productIdStr].prepay);
							b.data.spuId = d.spuId;
							b.data.isPreSale = d.isPreSale;
							b.data.saleStyleGlobal = d.isHaiTao;
							a = c.brand;
							b.oxoSaleArea = a.oxo_sale_area;
							b.isOxo = a.is_oxo;
							c = c.store ? 1 : 0;
							b.isFreight = 0 != a.area_freight_id && (1 == d.isVipSale || c) ||
								1 == d.isCjcLarge || c && d.saleAreaId ? 1 : 0;
							$.Listeners.sub("get.srs").onsuccess(function(a) {
								b.srsData = "";
								a = a.getSRSAreaId;
								if (1 == b.oxoSaleArea)
									$.Listeners.pub("get.oxoSaleArea.data").success({
										areaId: a,
										oxoSaleArea: b.oxoSaleArea
									});
								else if (1 != b.isFreight && 1 != b.isOxo) {
									var d = b.getSizeIds();
									b.getSRSReady(a, d)
								}
							});
							$.Listeners.sub("choose.size.success").onsuccess(function(a) {
								if (1 == b.data.isUseSizeSelector) {
									var d = $("#J-cartAdd-vSizeID").find(
										".selector_opt.selected a").text(); -
									1 != d.indexOf("\u5df2\u552e\u5b8c") || -1 != d
										.indexOf("\u6709\u673a\u4f1a") ? ($(
												".J_delivery_time_container").html(""),
											$(".J_delivery_warehouse_container")
											.addClass("hidden")) : b.getSizeSRSData(a)
								} else
									b.getSizeSRSData(a)
							});
							$.Listeners.sub("freight.success.srs").onsuccess(function(a) {
								var d = b.getSizeIds();
								b.getSRSReady(a.areaId, d)
							})
						}
					})
				},
				getSelectedSize: function() {
					return 1 == this.data.isUseSizeSelector ? $("#J-cartAdd-vSizeID").find(
						".selector_opt.selected a").data("val") : $(".J-sizeID.sli-selected").data(
						"id")
				},
				getSRSReady: function(b, a) {
					var c = this;
					$(".J_delivery_time_container").html("");
					$(".J_delivery_warehouse_container").addClass("hidden");
					$.Listeners.sub("stock_status").onsuccess(function() {
						var d = $("#J-mer-saleTag");
						if (d.hasClass("soldchance-tag") || d.hasClass("soldout-tag"))
							c.canRenderSRS = !1;
						d = c.data.sumData.product;
						if (1 == c.data.isPrepay || 1 == d.detailStatus)
							c.canRenderSRS = !1;
						c.canRenderSRS && c.getSRSAjax(b, a, c.data.spuId)
					})
				},
				getSRSAjax: function(b, a, c) {
					var d = this;
					0 < Object.keys(d.data.srsAjaxdata) ? d.getSRSCB(d.data.srsAjaxdata) : e({
						url: "//stock.vip.com/getSkuDeliveryTime",
						data: {
							sizeIds: a,
							vpId: c,
							areaId: b
						},
						type: "GET",
						dataType: "jsonp",
						jsonpCallback: "getSRS" + (new Date).getTime(),
						timeout: 8E3,
						cache: !0,
						ajaxTryTimes: 1,
						successCallback: function(a) {
							$.Listeners.pub(d.event.getSkuDeliverSuccess).success(a);
							d.data.srsAjaxdata = a;
							d.getSRSCB(a)
						},
						errorCallback: function() {
							VIPSHOP.log("\u83b7\u53d6\u65f6\u6548\u4fe1\u606f\u5931\u8d25!")
						}
					})
				},
				getSRSCB: function(b) {
					var a = c,
						f = a.getSelectedSize();
					if (f) {
						var d = b[f];
						d && 1 == d.resultCode && (b[f].fe_delivery_msg = a.handleSrsData(d,
								"deliveryTime"),
							b[f].fe_departure_msg = a.handleSrsData(d, "departureTime"),
							f = $.Tpl("J_delivery_time_tpl", b[f]),
							1 == a.data.isPreSale ? $(".J_delivery_time_container").addClass(
								"hidden") : $(".J_delivery_time_container").html(f).removeClass(
								"hidden"),
							1 == a.data.saleStyleGlobal && d.warehouse && 100 != d.eximType && ($(
									".J_delivery_warehouse_container").removeClass("hidden"),
								$(".J_delivery_warehouse_cnt").html(d.warehouse).attr("title", d
									.warehouse)))
					} else
						a.handleDefaultSrsData(b);
					for (var e in b)
						d = b[e],
						1 == d.resultCode && (b[e].fe_delivery_msg = a.handleSrsData(d, "deliveryTime"),
							b[e].fe_departure_msg = a.handleSrsData(d, "departureTime")),
						a.srsData && (a.srsData[e] = b[e]);
					a.srsData || (a.srsData = b)
				},
				getSizeSRSData: function(b) {
					if (0 != $("#J_address_box").data("id") && (b = b.sizeId,
							this.srsData && (b = this.srsData[b])))
						if (1 == b.resultCode) {
							var a = $.Tpl("J_delivery_time_tpl", b);
							1 == this.data.preSale ? $(".J_delivery_time_container").addClass(
								"hidden") : $(".J_delivery_time_container").html(a).removeClass(
									"hidden");
							1 == this.data.saleStyleGlobal && b.warehouse && 100 != b.eximType && ($(
									".J_delivery_warehouse_container").removeClass("hidden"),
								$(".J_delivery_warehouse_cnt").html(b.warehouse).attr("title", b
									.warehouse))
						} else
							$(".J_delivery_time_container").html(""),
							$(".J_delivery_warehouse_container").addClass("hidden")
				},
				handleDefaultSrsData: function(b) {
					var a, c, d, e, l, k;
					for (k in b) {
						var g = b[k];
						if (1 == g.resultCode)
							if (a ? g.deliveryTime < a && (a = g.deliveryTime,
									l = k) : (a = g.deliveryTime,
									l = k),
								c ? c != g.deliveryCode && (c = -1) : c = g.deliveryCode,
								d ? d != g.overTimeFlag && (d = -1) : d = g.overTimeFlag,
								!e)
								e = g.warehouse;
							else if (e != g.warehouse || 100 == g.eximType)
							e = -1
					}
					l && (b[l].fe_delivery_time = this.handleSrsData(b[l], "deliveryTime"),
						b[l].fe_departure_time = this.handleSrsData(b[l], "departureTime"),
						-1 != c && (b[l].fe_server = c),
						-1 != d && (b[l].fe_overTimeFlag = d),
						1 == this.data.saleStyleGlobal && -1 != e && ($(
								".J_delivery_warehouse_container").removeClass("hidden"),
							$(".J_delivery_warehouse_cnt").html(e).attr("title", e)),
						b = $.Tpl("J_delivery_time_default_tpl", b[l]),
						1 == this.data.preSale ? $(".J_delivery_time_container").addClass(
						"hidden") : $(".J_delivery_time_container").html(b).removeClass("hidden"))
				},
				setTimeTo24oclock: function(b) {
					b = new Date(b);
					b.setHours(0);
					b.setMinutes(0);
					b.setSeconds(0);
					b.setMilliseconds(0);
					return b.getTime()
				},
				handleSrsData: function(b, a) {
					if (b && 1 == b.resultCode) {
						if (void 0 == b[a])
							return "";
						var c = b[a];
						if (!c)
							return "";
						var d = this.setTimeTo24oclock(1E3 * c),
							e = this.setTimeTo24oclock(new Date),
							e = (d - e) / 864E5,
							d = 0;
						0 == e ? deliveryMsg = "\u4eca\u5929" : 1 == e ? 1 == b.deliveryCode ? (c =
								new Date(1E3 * c),
								d = 10 > c.getMinutes() ? "0" + c.getMinutes() : c.getMinutes(),
								deliveryMsg = "\u660e\u5929" + c.getHours() + ":" + d + "\u524d") :
							deliveryMsg = "\u660e\u5929" : (e = new Date(1E3 * c),
								d = e.getMonth() + 1,
								c = e.getDate(),
								e = e.getDay(),
								deliveryMsg = d + "\u6708" + c + "\u65e5\uff08\u5468" + this.weekDays[
								e] + "\uff09");
						return deliveryMsg
					}
				},
				getSizeIds: function() {
					var b = [],
						a;
					if (1 == this.data.isUseSizeSelector)
						if (a = $("#J-cartAdd-vSizeID").find(".selector_opt.selected a").data("val"))
							b[0] = a;
						else {
							a = this.data.sizeData.sizeList;
							for (var c in a) {
								var d = a[c].msizeId ? a[c].msizeId : "";
								"" != d && 20 > b.length && b.push(d)
							}
						}
					else if (a = $(".J-sizeID.sli-selected").data("id"))
						b[0] = a;
					else
						for (c in a = this.data.sizeData.sizeList,
							a)
							d = a[c].msizeId ? a[c].msizeId : "",
							"" != d && b.push(d);
					return b.join(",")
				}
			};
		h.exports = c
	}, {
		"../../../../plugins/modules/http/httpV2.js": 96
	}],
	74: [function(g, h, p) {
		var e = g("../../../../plugins/modules/http/httpV2"),
			c = g("../../../../plugins/switchMpList.js");
		h.exports = {
			data: {
				storeId: "",
				brandid: "",
				brand_sn: "",
				switchMP: 1
			},
			event: {
				sub: {
					getBrandInfoSuccess: "getBrandInfo.detail.success",
					getSwitchMpList: "get.switchMP"
				}
			},
			init: function() {
				c.getSwitch();
				this.bindEventListeners()
			},
			bindEventListeners: function() {
				var b = this;
				$.Listeners.sub(b.event.sub.getBrandInfoSuccess).onsuccess(function(a) {
					$.Listeners.sub(b.event.sub.getSwitchMpList).onsuccess(function(c) {
						b.data.switchMP = c.status;
						a.store && a.store.storeId && 0 < a.store.storeId.length &&
							(b.data.storeId = a.store.storeId,
								b.data.brandId = a.product.brandIdStr,
								b.data.brand_sn = a.product.brandStoreSn,
								b.getStoreInfo())
					})
				})
			},
			getStoreInfo: function() {
				var b = this;
				e({
					url: "//pcapi.vip.com/store/getStoreInfo.php",
					data: {
						storeId: b.data.storeId,
						brandId: b.data.brandId
					},
					type: "jsonp",
					jsonpCallback: "getStoreInfo",
					timeout: 8E3,
					successCallback: function(a) {
						200 == a.code ? (a = b.dataProcess(a.data),
							a = $.Tpl("J_mpLicenseScoreTpl", a),
							$("#J_mpLicenseScoreWrap").removeClass("hidden").html(a)
							) : b.errorHandle()
					},
					errorCallback: function() {
						b.errorHandle();
						VIPSHOP.log("\u83b7\u53d6\u5e97\u94fa\u4fe1\u606f\u5931\u8d25!")
					}
				})
			},
			dataProcess: function(b) {
				b.storeQualificationImgList = b.storeQualificationImgList || [];
				b.storeDSRScore = b.storeDSRScore || {
					productDescScore: "-",
					storeServiceScore: "-",
					logisticServiceScore: "-"
				};
				b.brand_sn = this.data.brand_sn;
				if (1 == this.data.switchMP && b.storeInfo.storeId) {
					var a = "//list.vip.com/mplist.html?storeId=" + b.storeInfo.storeId;
					window.openhk && b.storeInfo.storeMainFlag && "1-OVERSEA" == b.storeInfo
						.storeMainFlag && (a = "//www.vipglobal.hk/mplist.html?storeId=" + b
							.storeInfo.storeId);
					b.storeInfo.storeUrl = a
				}
				return b
			},
			errorHandle: function() {
				$("#J_mpLicenseScoreWrap").addClass("hidden")
			}
		}
	}, {
		"../../../../plugins/modules/http/httpV2": 96,
		"../../../../plugins/switchMpList.js": 109
	}],
	75: [function(g, h, p) {
		var e = g("../../../../plugins/modules/http/httpV2.js");
		h.exports = {
			event: {
				pub: {
					getServerTimeSuccess: "fetchCustomerService.getServerTimeSuccess",
					getServerTimeFailed: "fetchCustomerService.getServerTimeFailed"
				}
			},
			data: {
				hasGetServerTime: 0
			},
			url: {
				getServerTime: "//detail.vip.com/detail-ajax.php?act=getServerTime"
			},
			init: function() {
				var c = this;
				0 == c.data.hasGetServerTime && (c.data.hasGetServerTime = 1,
					e({
						url: c.url.getServerTime,
						data: [],
						jsonp: "callback",
						jsonpCallback: "modServerTimeCB",
						dataType: "jsonp",
						cache: !0,
						timeout: 8E3,
						ajaxTryTimes: 1,
						code: "modServerTimeCB_ajax_err",
						successCallback: function(b) {
							if (200 == b.code && b.data) {
								c.data.hasGetServerTime = 1;
								var a = Math.round((new Date).getTime() / 1E3),
									a = b.data - a;
								b = {
									pcServerTime: b.data,
									step: a
								};
								window.localTimeStep = a;
								$.Cookie.set("VipDFT", a, ".vip.com", "/", 17520);
								$.Listeners.pub(c.event.pub.getServerTimeSuccess)
									.success(b)
							} else
								$.Listeners.pub(c.event.pub.getServerTimeFailed)
								.success()
						},
						errorCallback: function(b) {
							$.Listeners.pub(c.event.pub.getServerTimeFailed).success()
						}
					}))
			}
		}
	}, {
		"../../../../plugins/modules/http/httpV2.js": 96
	}],
	76: [function(g, h, p) {
		h.exports = {
			mVideoElem: null,
			options: {
				videoIndex: 0
			},
			init: function(e) {
				if (!window.videojs)
					return !1;
				$.extend(this.options, e);
				this.initVideoPlayer();
				this.bindCustomEvents();
				this.bindEvent()
			},
			bindEvent: function() {
				var e = this;
				$(document).on("click", "#J_video_reload_btn", function() {
					e.mVideoElem.load()
				}).on("click", ".vjs-mute-control", function() {
					var c = $(".vjs-mute-control").attr("muted");
					$(".vjs-mute-control").attr("muted", 0 == c ? 1 : 0)
				}).on("click", ".vjs-big-play-button", function(c) {
					c.preventDefault();
					$(this).parent().hasClass("vjs-playing") && e.mVideoElem.pause()
				});
				this.mVideoElem.on("error", function(c) {
					$(this.errorDisplay.contentEl_).html($("#J_video_error_tmpl").html())
				});
				this.mVideoElem.on("ended", function(c) {
					e.videoEnded()
				});
				this.mVideoElem.on("volumechange", function(c) {
					c = e.mVideoElem.volume();
					e.videoVolumeChange(c)
				})
			},
			bindCustomEvents: function() {
				$.Listeners.sub("resume.video.state").onsuccess(function() {});
				$.Listeners.sub("pause.video.state").onsuccess(function() {})
			},
			initVideoPlayer: function() {
				var e = this;
				this.options.isDispose ? window.videojs("J_video_comment_source_" + e.options
					.videoIndex).dispose() : (e._vol = $.Storage.get("player_volume"),
					e.mVideoElem = window.videojs("J_video_comment_source_" + e.options
						.videoIndex, {
							controls: !0,
							autoplay: !0,
							muted: e._vol ? 0 : 1,
							preload: "auto",
							loop: !1,
							fluid: !1,
							resizeManager: !1,
							volumeMenuButton: {
								inline: !1,
								vertical: !0
							}
						},
						function() {
							e._vol && e.mVideoElem.volume(e._vol);
							$(".vjs-mute-control").attr("muted", e._vol ? 0 : 1)
						}))
			},
			videoEnded: function() {
				$.Listeners.pub("switch.pic.index.trigger").success({
					index: 1
				})
			},
			videoVolumeChange: function(e) {
				var c = $.Storage.get("player_volume"),
					b = 1 * $(".vjs-mute-control").attr("muted");
				c != e && $.Storage.set("player_volume", e, 86400);
				0 < e && 1 == b && $.Storage.set("player_volume", 0, 86400)
			}
		}
	}, {}],
	77: [function(g, h, p) {
		h.exports = {
			mVideoElem: null,
			zoomInVideoPop: null,
			zoomIned: !1,
			curMidVideoTime: 0,
			curBigVideoTime: 0,
			_vol: 0,
			init: function(e) {
				"" != e && (this.initVideoPlayer(),
					this.bindCustomEvents())
			},
			bindCustomEvents: function() {
				var e = this;
				$.Listeners.sub("resume.video.state").onsuccess(function() {
					e.mVideoElem.play()
				});
				$.Listeners.sub("pause.video.state").onsuccess(function() {
					e.mVideoElem.pause()
				})
			},
			initVideoPlayer: function() {
				var e = this;
				e._vol = $.Storage.get("player_volume");
				this.mVideoElem = window.videojs("J_video_source", {
					controls: !0,
					autoplay: !0,
					muted: e._vol ? 0 : 1,
					preload: "auto",
					loop: !1,
					fluid: !1,
					resizeManager: !1,
					volumeMenuButton: {
						inline: !1,
						vertical: !0
					}
				}, function() {
					e._vol && e.mVideoElem.volume(e._vol);
					$(".vjs-mute-control").attr("muted", e._vol ? 0 : 1)
				});
				this.mVideoElem.on("error", function(c) {
					VIPSHOP.log("error occur");
					$(this.errorDisplay.contentEl_).html($("#J_video_error_tmpl").html());
					$(document).on("click", "#J_video_reload_btn", function() {
						e.mVideoElem.load()
					})
				});
				this.mVideoElem.on("ended", function(c) {
					e.videoEnded()
				});
				this.mVideoElem.on("volumechange", function(c) {
					c = e.mVideoElem.volume();
					if (e.mZoomoutVideoElem) {
						var b = e.mZoomoutVideoElem.volume();
						if (c == b)
							return !1;
						e.mZoomoutVideoElem.volume(c)
					}
					e.videoVolumeChange(c)
				});
				$(document).on("click", ".vjs-mute-control", function() {
					var c = $(".vjs-mute-control").attr("muted");
					$(".vjs-mute-control").attr("muted", 0 == c ? 1 : 0)
				}).on("click", ".vjs-big-play-button", function(c) {
					c.preventDefault();
					$(this).parent().hasClass("vjs-playing") && e.mVideoElem.pause()
				})
			},
			initZoomInVideo: function() {
				var e = this;
				if (this.zoomIned)
					return e.mZoomoutVideoElem.currentTime(e.curMidVideoTime),
						this.mZoomoutVideoElem.play(),
						!1;
				e.zoomIned = !0;
				e.mZoomoutVideoElem = window.videojs("J_video_source_zoomin", {
					width: 1E3,
					height: 700,
					controls: !0,
					autoplay: !0,
					muted: e._vol ? 0 : 1,
					preload: "auto",
					loop: !1,
					resizeManager: !1,
					fluid: !1
				}, function() {
					e._vol && e.mZoomoutVideoElem.volume(e._vol)
				});
				e.mZoomoutVideoElem.currentTime(e.curMidVideoTime);
				e.mZoomoutVideoElem.on("ended", function() {
					e.zoomOutVideo(!0);
					e.videoEnded()
				});
				e.mZoomoutVideoElem.on("volumechange", function() {
					var c = e.mVideoElem.volume(),
						b = e.mZoomoutVideoElem.volume();
					if (c == b)
						return !1;
					e.mVideoElem.volume(b);
					e.videoVolumeChange(b)
				});
				this.mZoomoutVideoElem.requestFullscreen = function() {
					VIPSHOP.log("rewrite Zoomout video fullscreen func");
					e.zoomOutVideo()
				};
				$(document).off("click", ".vjs-big-play-button");
				$(document).on("click", ".vjs-big-play-button", function(c) {
					c.preventDefault();
					$(this).parent().hasClass("vjs-playing") && (e.mVideoElem.pause(),
						e.mZoomoutVideoElem.pause())
				})
			},
			zoomInVideo: function() {
				var e = this;
				$(document).off("keydown");
				$(document).on("keydown", function(c) {
					VIPSHOP.log(c);
					27 == c.keyCode && e.zoomInVideoPop.close()
				})
			},
			fadeOutDom: function(e, c) {
				e.fadeIn();
				setTimeout(function() {
					e.fadeOut()
				}, c || 3E3)
			},
			fadeInDom: function(e) {
				e.fadeIn()
			},
			zoomOutVideo: function(e) {
				var c = e || 0;
				this.curBigVideoTime = this.mZoomoutVideoElem.currentTime();
				this.mVideoElem.currentTime(this.curBigVideoTime);
				this.mZoomoutVideoElem.pause();
				e ? this.zoomInVideoPop.close(c) : (this.mVideoElem.play(),
					this.zoomInVideoPop.close(1))
			},
			videoEnded: function() {
				$.Listeners.pub("switch.pic.index.trigger").success({
					index: 1
				})
			},
			videoVolumeChange: function(e) {
				var c = $.Storage.get("player_volume"),
					b = 1 * $(".vjs-mute-control").attr("muted");
				c != e && $.Storage.set("player_volume", e, 86400);
				0 < e && 1 == b && $.Storage.set("player_volume", 0, 86400)
			}
		}
	}, {}],
	78: [function(g, h, p) {
		h.exports = {
			init: function() {
				this.getData()
			},
			getData: function() {
				new(g("../../plugins/modules/Scroll/LazyDomHelper"))({
					$dom: $("#J-footerArea"),
					loadingFn: function(e) {
						e.loading = !0;
						var c = {
							successCallback: null,
							completeCallback: null
						};
						$.ajax({
							url: "//common.vip.com/?callback=DetailRepaint&type=footer&jq=0&loadga=0&core=0&loadmars=0&v=" +
								commonVer,
							dataType: "jsonp",
							timeout: 8E3,
							cache: !0,
							success: function(b) {
								$("#J-footerArea").append(b);
								null != c.successCallback && c
							.successCallback();
								e.destroy()
							},
							complete: function() {
								null != c.completeCallback && c
									.completeCallback();
								e.loading = !1
							}
						})
					}
				})
			}
		}
	}, {
		"../../plugins/modules/Scroll/LazyDomHelper": 88
	}],
	79: [function(g, h, p) {
		h.exports = {
			wrapCommonData: function(e) {
				return $.extend({}, e, {
					api_key: "70f71280d5d547b2a7bb370a529aeea1"
				})
			},
			getSign: function(e, c) {
				var b = "";
				try {
					b = window.sign ? window.sign.getSign(e, c) : ""
				} catch (a) {
					b = ""
				}
				return b
			}
		}
	}, {}],
	80: [function(g, h, p) {
		h.exports = {
			get: function() {
				var e = navigator.userAgent,
					c = -1 < e.indexOf("Opera"),
					b = window.ActiveXObject || "ActiveXObject" in window,
					a = -1 < e.indexOf("Edge"),
					f = -1 < e.indexOf("Firefox"),
					d = -1 < e.indexOf("Safari") && -1 == e.indexOf("Chrome"),
					n = -1 < e.indexOf("Chrome") && -1 < e.indexOf("Safari") && !a;
				if (b)
					return /MSIE (\d+\.\d+);/.test(e),
						c = parseFloat(RegExp.$1),
						-1 != e.indexOf("MSIE 6.0") ? "IE6" : 7 == c ? "IE7" : 8 == c ? "IE8" : 9 ==
						c ? "IE9" : 10 == c ? "IE10" : e.toLowerCase().match(
							/rv:([\d.]+)\) like gecko/) ? "IE11" : "0";
				if (f)
					return "FF";
				if (c)
					return "Opera";
				if (d)
					return "Safari";
				if (n)
					return "Chrome";
				if (a)
					return "Edge"
			}
		}
	}, {}],
	81: [function(g, h, p) {
		var e = g("./urlParam.js"),
			c = g("./modules/http/httpV2.js"),
			b = g("./modules/checkLogin/globalLogin.js");
		h.exports = {
			prepare: function(a) {
				var f = $.Deferred();
				a = e.get({
					scene: a.scene,
					scene_data: a.scene_data
				});
				a = b.replaceApiKey(a);
				a = b.auth("//mapi.vip.com/vips-mobile/rest/captcha/pc/prepare/v1", a,
					"mapi.vip.com", "get", 0);
				c({
					url: a.url,
					data: a.param,
					timeout: 8E3,
					dataType: "json",
					crossDomain: !0,
					xhrFields: {
						withCredentials: !0
					},
					code: "captcha_prepay_ajax_error",
					successCallback: function(a) {
						f.resolve(a)
					},
					errorCallback: function(a, b) {
						f.reject()
					}
				});
				return f.promise()
			}
		}
	}, {
		"./modules/checkLogin/globalLogin.js": 94,
		"./modules/http/httpV2.js": 96,
		"./urlParam.js": 110
	}],
	82: [function(g, h, p) {
		var e = g("./browserType.js");
		h.exports = {
			init: function(c) {
				c = e.get();
				("IE6" == c || "IE7" == c || "IE8" == c || "IE9" == c) && 1 > $(
					".J_id_compact_tips2").length && $.Dialog({
					content: '<center><div class = "J_id_compact_tips2 ">\u68c0\u6d4b\u5230\u60a8\u7684\u6d4f\u89c8\u5668\u7248\u672c\u8fc7\u4f4e\uff0c\u4e3a\u4fdd\u8bc1\u60a8\u7684\u6d4f\u89c8\u4f53\u9a8c\uff0c\u8bf7\u5148\u5c06\u6d4f\u89c8\u5668\u5347\u7ea7\u5230\u6700\u65b0\u7248\u672c\u3002</div></center>',
					model: !0,
					effect: {
						effect: "slide",
						duration: 200
					},
					opacity: 0.6,
					zIndex: 1E3,
					button: [{
						type: "primary",
						text: "\u6211\u77e5\u9053\u4e86",
						size: "medium",
						event: function() {
							this.close()
						}
					}]
				}).open()
			}
		}
	}, {
		"./browserType.js": 80
	}],
	83: [function(g, h, p) {
		h.exports = {
			dialog: function(e) {
				e = e ? e : {};
				var c = "",
					b = "\u7f51\u7edc\u5f02\u5e38\uff0c\u8bf7\u91cd\u65b0\u5c1d\u8bd5\uff01";
				e.title && (c = e.title);
				e.msg && (b = e.msg);
				$.Dialog({
					model: !0,
					opacity: 0.5,
					title: c,
					size: "medium",
					content: b,
					button: [{
						type: "primary",
						text: "\u786e\u5b9a",
						size: "medium",
						event: function() {
							e.closeEvent && e.closeEvent();
							this.close()
						}
					}],
					closeEvent: function() {
						e.closeEvent && e.closeEvent();
						this.destroy()
					}
				}).open()
			}
		}
	}, {}],
	84: [function(g, h, p) {
		h.exports = {
			creat: function() {
				return this.encrypt(this._pad((new Date).getTime(), 13) + "_" + this._rand())
			},
			encrypt: function(e) {
				var c = e.split("_"),
					b = c[0],
					c = c[1];
				if (!b || !c)
					return e;
				var a = 0,
					f = b.length;
				for (e = 0; e < f; e++)
					a += parseInt(b[e]);
				var f = a % 32,
					d = a,
					a = c.length;
				for (e = 0; e < a; e++)
					e !== f && (d += parseInt(c[e], 16));
				e = (d % 16).toString(16);
				return b + "_" + c.substr(0, f) + e.toString() + c.substr(f + 1, a)
			},
			_pad: function(e, c) {
				for (var b = e.toString().length; b < c;)
					e = "0" + e,
					b++;
				return e
			},
			_rand: function(e) {
				var c = "",
					b = 0;
				for (e = e || 32; b < e; b++)
					c += "0123456789abcdef".charAt(Math.ceil(1E8 * Math.random()) % 16);
				return c
			}
		}
	}, {}],
	85: [function(g, h, p) {
		var e = g("./urlParam.js"),
			c = g("./modules/http/httpV2.js");
		h.exports = {
			getDynamicConfig: function(b) {
				var a = $.Deferred();
				c({
					url: "//mapi.vip.com/vips-mobile/rest/operation/pc/dynamic-config/v1",
					data: e.get({
						code: b
					}),
					cache: !1,
					dataType: "jsonp",
					type: "GET",
					jsonpCallback: "getDynamicConfig" + (new Date).getTime() + "_" + Math
						.floor(1E6 * Math.random()),
					timeout: 8E3,
					successCallback: function(b) {
						1 == b.code && b.data ? a.resolve(b.data) : a.reject()
					},
					errorCallback: function() {
						a.reject()
					}
				});
				return a.promise()
			}
		}
	}, {
		"./modules/http/httpV2.js": 96,
		"./urlParam.js": 110
	}],
	86: [function(g, h, p) {
		var e = g("./urlParam.js"),
			c = g("./modules/http/httpV2.js");
		h.exports = {
			getSwitch: function(b) {
				var a = $.Deferred();
				c({
					url: "//mapi.vip.com/vips-mobile/rest/pcoperation/switch/v1",
					data: e.get({
						switch_id: b
					}),
					cache: !1,
					dataType: "jsonp",
					type: "GET",
					jsonpCallback: "getPcOperation" + (new Date).getTime() + "_" + Math
						.floor(1E6 * Math.random()),
					timeout: 8E3,
					successCallback: function(b) {
						1 == b.code && b.data ? a.resolve(b.data) : a.resolve()
					},
					errorCallback: function() {
						a.resolve()
					}
				});
				return a.promise()
			}
		}
	}, {
		"./modules/http/httpV2.js": 96,
		"./urlParam.js": 110
	}],
	87: [function(g, h, p) {
		g("../../modules/http/httpV2.js");
		h.exports = {
			init: function() {
				if (!$.Cookie.get("mars_cid")) {
					var e = (new Date).getTime() + ("_" + this.randStr(32)),
						c = this.randStr(32),
						b = "www.vipglobal.hk" == window.location.host ? ".vipglobal.hk" :
						".vip.com";
					$.Cookie.set("mars_cid", e, b, "/", 17520);
					$.Cookie.set("mars_sid", c, b, "/", 17520)
				}
			},
			randStr: function(e) {
				e = e || 32;
				var c = "";
				for (i = 0; i < e; i++)
					c += "abcdefhijkmnprstwxyz2345678".charAt(Math.floor(27 * Math.random()));
				return c
			}
		}
	}, {
		"../../modules/http/httpV2.js": 96
	}],
	88: [function(g, h, p) {
		var e = g("./ScrollListener.js");
		(function(c) {
			var b = function(a) {
				return this.init(a)
			};
			c.extend(b.prototype, {
				config: {
					$dom: null,
					preHeight: 200,
					loadingFn: null
				},
				eventId: null,
				loading: !1,
				init: function(a) {
					this.config = c.extend({}, this.config, a);
					this.$window = c(window);
					this.$window.height() > this.config.$dom.offset().top - this.config
						.preHeight ? this.config.loadingFn(this) : this.addEvent()
				},
				destroy: function() {
					this.removeEvent();
					this.eventId = this.loading = this.config.$dom = this.$window = null
				},
				addEvent: function() {
					var a = this;
					a.eventId = e.add(function(b) {
						a.determine(b.y, b.down)
					})
				},
				removeEvent: function() {
					e.remove(this.eventId)
				},
				determine: function(a, b) {
					!this.loading && this.$window.height() + a > this.config.$dom.offset()
						.top - this.config.preHeight && this.config.loadingFn(this)
				}
			});
			h.exports = b
		})(jQuery)
	}, {
		"./ScrollListener.js": 89
	}],
	89: [function(g, h, p) {
		var e = g("./asynFire.js"),
			c = Math.random().toString(36).substr(2).substr(0, 4) + "_",
			b = 1;
		h.exports = {
			nX: 0,
			nY: 0,
			change: !1,
			wW: 0,
			interval: 0,
			resizeTimeout: 0,
			eventId: ".scrollListener",
			inited: !1,
			lazy: 300,
			list: {},
			event: {
				sub: {
					scrollLockEvent: "index.click.scrollLock"
				}
			},
			_bindEvent: function() {
				var a = this;
				$.Listeners.sub(a.event.sub.scrollLockEvent).onsuccess(function() {
					$(window).off(a.eventId);
					$(window).on("scroll" + a.eventId, function(b) {
						a.change = !0
					})
				})
			},
			add: function(a) {
				var f, d = $(window);
				return $.isFunction(a) ? (this.inited || this._init(),
					f = c + b++,
					this.list[f] = a,
					e(function() {
						a({
							x: d.scrollLeft(),
							y: d.scrollTop(),
							right: !0,
							down: !0
						})
					}),
					f) : !1
			},
			remove: function(a) {
				var b = this.list;
				return b[a] ? (b[a] = null,
					delete b[a],
					!0) : !1
			},
			fire: function(a, b, d, c) {
				var e = this.list,
					k;
				a = {
					x: "number" === typeof a ? a : $(window).scrollLeft(),
					y: "number" === typeof b ? b : $(window).scrollTop(),
					right: "boolean" === typeof d ? d : !0,
					down: "boolean" === typeof c ? c : !0
				};
				for (k in e)
					e[k](a);
				return this
			},
			setLazy: function(a) {
				this.lazy = a;
				this.inited && this._removeInterval()._addInterval();
				return this
			},
			_init: function() {
				if (this.inited)
					return this;
				this._bindEvent();
				this.wW = $(window).width();
				this._addEvent()._addInterval();
				this.inited = !0;
				return this
			},
			_determine: function() {
				var a, b, d, c;
				this.change && (this.change = !1,
					a = $(window),
					b = this.nX,
					d = this.nY,
					c = a.scrollLeft(),
					a = a.scrollTop(),
					this.fire(c, a, c > b, a > d),
					this.nX = c,
					this.nY = a)
			},
			_resizeHandle: function() {
				var a = this;
				clearTimeout(a.resizeTimeout);
				a.resizeTimeout = setTimeout(function() {
					var b = $(window),
						d = a.wW,
						c = b.width(),
						e = b.scrollLeft(),
						b = b.scrollTop();
					a.nX = e;
					a.nY = b;
					a.wW = c;
					a.fire(e, b, c > d, c > d)
				}, 200)
			},
			_addEvent: function() {
				var a = this;
				$(window).on("scroll" + a.eventId, function(b) {
					a.change = !0
				}).on("resize" + a.eventId, function(b) {
					a._resizeHandle()
				});
				return this
			},
			_removeEvent: function() {
				$(window).off(this.eventId);
				return this
			},
			_addInterval: function() {
				var a = this;
				a.interval = setInterval(function() {
					a._determine()
				}, a.lazy);
				return this
			},
			_removeInterval: function() {
				clearInterval(this.interval);
				this.interval = null;
				return this
			},
			destroy: function() {
				this._removeEvent()._removeInterval();
				this.inited = !1;
				this.list = {};
				return this
			}
		}
	}, {
		"./asynFire.js": 90
	}],
	90: [function(g, h, p) {
		function e(a) {
			return "function" === typeof a && /^[^{]+\{\s*\[native \w/.test(a)
		}

		function c(a) {
			var b = new Image;
			b.onload = b.onerror = b.onreadystatechange = function() {
				b = b.onload = b.onerror = b.onreadystatechange = null;
				a()
			};
			b.src = "data:image/png,"
		}
		g = window;
		var b = g.requestAnimationFrame || g.webkitRequestAnimationFrame || g.mozRequestAnimationFrame || g
			.oRequestAnimationFrame || g.msRequestAnimationFrame,
			a = !0;
		g = null;
		c(function() {
			a = !1
		});
		g = e(window.Promise) && function() {
				var a = Promise.resolve({
					then: function(a) {
						a()
					}
				});
				return function(b) {
					a.then(function() {
						b()
					})
				}
			}() || e(b) && function(a) {
				b(a)
			} ||
			a && c || function() {
				var a = document,
					b = a.body,
					c = [];
				return function(e) {
					var k = a.createElement("script");
					k.src = "data:text/javascript,";
					c[c.length] = e;
					k.onload = k.onerror = k.onreadystatechange = function() {
						k.onload = k.onerror = k.onreadystatechange = null;
						b.removeChild(k);
						k = null;
						c.shift()()
					};
					b.appendChild(k)
				}
			}();
		g !== c && (c = null);
		h.exports = g
	}, {}],
	91: [function(g, h, p) {
		h.exports = {
			init: function() {
				$("body").on("click", ".J_fake_a", function(e) {
					e.preventDefault()
				})
			}
		}
	}, {}],
	92: [function(g, h, p) {
		var e = g("../../modules/http/httpV2.js"),
			c = g("./../../../plugins/modules/checkLogin/globalLogin.js");
		h.exports = {
			data: {
				page: {},
				spiderFlow: "A",
				spiderId: 4791,
				spiderType: {
					A: "A",
					B: "B",
					C1: "C1",
					C2: "C2"
				}
			},
			init: function(b) {
				var a = this,
					c = $.Deferred();
				b = {
					pages: b,
					mars_cid: $.Cookie.get("mars_cid") ? $.Cookie.get("mars_cid") :
						"default_marscid"
				};
				$.Cookie.get("VipRUID") && (b.userid = $.Cookie.get("VipRUID"));
				e({
					url: "//pcapi.vip.com/abtest/index.php",
					data: b,
					cache: !1,
					dataType: "jsonp",
					type: "GET",
					jsonpCallback: "getPcAbtest",
					timeout: 8E3,
					successCallback: function(b) {
						200 == b.code && b.data ? (a.processPage(b.data),
							c.resolve(a.data.page)) : c.resolve()
					},
					errorCallback: function() {
						c.resolve()
					}
				});
				return c.promise()
			},
			processPage: function(b) {
				if (!$.isEmptyObject(b))
					for (var a in b)
						b[a].page_rs && b[a].page_rs[0] && b[a].page_rs[0].abt && b[a].page_rs[0]
						.abt.name && (this.data.page[a] = b[a].page_rs[0].abt.name);
				this.data.spiderFlow = this.data.page[this.data.spiderId] ? this.data.page[this.data
					.spiderId].toUpperCase() : "A"
			},
			state: function() {
				var b = this.data.spiderFlow;
				"B" == this.data.spiderFlow ? $.Cookie.get("VipRUID") || c.forceLogin() : "C" ==
					this.data.spiderFlow && (b = $.Cookie.get("VipRUID") ? this.data.spiderType.C2 :
						this.data.spiderType.C1);
				return b
			},
			processCallback: function(b) {
				return b && b.code && "999000" == b.code ? (c.forceLogin(),
					!0) : !1
			},
			hiddenList: function(b) {
				"C" != this.data.spiderFlow || $.Cookie.get("VipRUID") || (b.top && $(b.top)
					.addClass("hidden"),
					b.bottom && ($(b.bottom).html(
							'<span class="spiderLogin">\u53bb\u767b\u5f55\uff0c\u89e3\u9501\u66f4\u591a\u4f18\u60e0\u5546\u54c1 >></span>'
							),
						$(b.bottom + " .spiderLogin").click(function() {
							c.forceLogin()
						})))
			}
		}
	}, {
		"../../modules/http/httpV2.js": 96,
		"./../../../plugins/modules/checkLogin/globalLogin.js": 94
	}],
	93: [function(g, h, p) {
		var e = g("../../../plugins/moDynamicConfig.js");
		h.exports = {
			data: {
				cookieFreq: "vip_access_times",
				page: "detail",
				mapPageKey: {
					detail: "frequency_for_detail",
					list: "frequency_for_list"
				},
				moCode: "frequency_to_log_in"
			},
			init: function(c) {
				var b = this;
				c && (b.data.page = c);
				if (window.abtest && "A" != window.abtest.data.spiderFlow)
					return !0;
				$.when(e.getDynamicConfig(b.data.moCode)).then(function(a) {
					b.dataProcess(a)
				}, "")
			},
			dataProcess: function(c) {
				if (c && c[0] && c[0].config && void 0 !== c[0].config[this.data.mapPageKey[this
						.data.page]]) {
					c = parseInt(c[0].config[this.data.mapPageKey[this.data.page]]);
					var b = $.Cookie.get(this.data.cookieFreq);
					if (0 < c && !$.Cookie.get("VipLID")) {
						var a = {};
						try {
							b && (a = eval("(" + b + ")"))
						} catch (f) {
							console.log("error_times")
						}
						void 0 === a[this.data.page] && (a[this.data.page] = 0);
						a[this.data.page] += 1;
						a[this.data.page] >= c && (a[this.data.page] = 0,
							VIPSHOP.login.init({}));
						$.Cookie.set(this.data.cookieFreq, JSON.stringify(a), ".vip.com", "/", 8760)
					}
				}
			}
		}
	}, {
		"../../../plugins/moDynamicConfig.js": 85
	}],
	94: [function(g, h, p) {
		h.exports = {
			redirect: function() {
				var e = window.location.href; -
				1 != e.indexOf("#") && (e = e.substring(0, e.indexOf("#")));
				e = encodeURIComponent(e);
				return "www.vipglobal.hk" == window.location.host ? (location.href =
					"https://passport.vip.com/login?whereFrom=vipglobal&src=" +
					encodeURIComponent("https://www.vipglobal.hk/gw/login?targe_url=") + e,
					!0) : !1
			},
			forceLogin: function() {
				var e = window.location.href; -
				1 != e.indexOf("#") && (e = e.substring(0, e.indexOf("#")));
				e = encodeURIComponent(e);
				if ("www.vipglobal.hk" == window.location.host)
					return location.href =
						"https://passport.vip.com/login?whereFrom=vipglobal&src=" +
						encodeURIComponent("https://www.vipglobal.hk/gw/login?targe_url=") + e,
						!0;
				location.href = "https://passport.vip.com/login?src=" + e;
				return !1
			},
			auth: function(e, c, b, a, f) {
				var d = {
					url: e,
					param: c,
					crossDomain: !1
				};
				if ("www.vipglobal.hk" == window.location.host) {
					var n = "",
						n = e.replace(/^http:\/\/[^\/]*/, ""),
						n = n.replace(/^https:\/\/[^\/]*/, ""),
						n = n.replace(/^\/\/[^\/]*/, "");
					e = "";
					e = JSON.stringify(c);
					c = {
						path: n,
						host: b,
						method: a,
						param: e,
						auth: f
					};
					d.url = "//www.vipglobal.hk/gw/api";
					d.param = c;
					d.crossDomain = !0
				}
				return d
			},
			replaceApiKey: function(e) {
				"www.vipglobal.hk" == window.location.host && e.api_key && (e.api_key =
					"adf779847ac641dd9590ccc5674e25d2");
				return e
			},
			isHk: function() {
				return "www.vipglobal.hk" == window.location.host ? !0 : !1
			}
		}
	}, {}],
	95: [function(g, h, p) {
		h.exports = function(e) {
			void 0 == window.AJAX_CACHE && (window.AJAX_CACHE = {});
			var c = this,
				b = {
					url: "",
					data: {},
					dataType: "json",
					jsonpCallback: "jsonpCallback",
					type: "GET",
					dataFilter: function(a, b) {
						return a
					},
					timeout: 8E3,
					lock: !1,
					preFilter: function(a) {
						a()
					},
					filter: null,
					isCache: !1,
					cacheKeys: [],
					cacheObj: window.AJAX_CACHE,
					event: {
						ajaxLock: "ajax.lock",
						ajaxUnlock: "ajax.unlock",
						ajaxCommonError: "ajax.commonError",
						ajaxTimeout: "ajax.timeout"
					},
					successCallback: null,
					errorCallback: null
				};
			$.extend(b, e);
			this.success = function(a) {
				b.successCallback = a
			};
			this.error = function(a) {
				b.errorCallback = a
			};
			this.filter = null == b.filter ? function(a, b, d) {
					return d(a)
				} :
				e.filter;
			this.cache = {
				getkey: function(a, b) {
					var d = [];
					$.each(a, function(a, c) {
						d.push(b[c])
					});
					return d.join("_")
				},
				get: function(a, c) {
					var d = this.getkey(a, c);
					return b.cacheObj[d]
				},
				set: function(a, c, d) {
					a = this.getkey(a, c);
					b.cacheObj[a] = d
				}
			};
			b.preFilter(function() {
				if (b.isCache && void 0 != c.cache.get(b.cacheKeys, b.data)) {
					if (null != b.successCallback) {
						var a = c.cache.get(b.cacheKeys, b.data);
						b.successCallback(a)
					}
				} else
					b.lock && $.Listeners.pub(b.event.ajaxLock).success(),
					c.$ajax = $.ajax({
						url: b.url,
						data: b.data,
						dataType: b.dataType,
						type: b.type,
						dataFilter: b.dataFilter,
						jsonpCallback: b.jsonpCallback,
						timeout: b.timeout,
						success: function(a) {
							b.lock && $.Listeners.pub(b.event.ajaxUnlock).success();
							c.filter(a, b, function(a) {
								b.isCache && c.cache.set(b.cacheKeys, b.data,
								a);
								null != b.successCallback && b.successCallback(
									a)
							})
						},
						error: function(a, d, c) {
							b.lock && $.Listeners.pub(b.event.ajaxUnlock).success();
							null != b.errorCallback ? b.errorCallback(a, d, c) :
								"timeout" == d ? $.Listeners.pub(b.event.ajaxTimeout)
								.success({
									code: 500,
									msg: "\u7cfb\u7edf\u7e41\u5fd9\uff0c\u8bf7\u7a0d\u540e\u518d\u8bd5~"
								}) : $.Listeners.pub(b.event.ajaxCommonError).success({
									code: 500,
									msg: "\u7cfb\u7edf\u7e41\u5fd9\uff0c\u8bf7\u7a0d\u540e\u518d\u8bd5~"
								})
						}
					})
			});
			return this
		}
	}, {}],
	96: [function(g, h, p) {
		var e = g("../../../plugins/Authorization"),
			c = {
				init: function(b) {
					void 0 == window.AJAX_CACHE && (window.AJAX_CACHE = {});
					this.skey = "3c5ad16dbc06cd16ae1fd3344d87f16b";
					var a = this,
						c = (new Date).getTime(),
						d = {
							url: "",
							data: {},
							cache: !1,
							dataType: "jsonp",
							jsonpCallback: "jsonpCallback",
							type: "GET",
							dataFilter: function(a, b) {
								return a
							},
							timeout: 8E3,
							lock: !1,
							preFilter: function(a) {
								a()
							},
							filter: null,
							isCache: !1,
							cacheKeys: [],
							cacheObj: window.AJAX_CACHE,
							code: "",
							scReport: "",
							event: {
								ajaxLock: "ajax.lock",
								ajaxUnlock: "ajax.unlock"
							},
							headers: {},
							xhrFields: {},
							crossDomain: !1,
							successCallback: null,
							errorCallback: null,
							isEncrypt: !1,
							ajaxTryTimes: 0
						};
					$.extend(d, b);
					this.filter = null == d.filter ? function(a, b, d) {
							return d(a)
						} :
						b.filter;
					this.cache = {
						getkey: function(a, b) {
							var d = [];
							$.each(a, function(a, c) {
								d.push(b[c])
							});
							return d.join("_")
						},
						get: function(a, b) {
							var c = this.getkey(a, b);
							return d.cacheObj[c]
						},
						set: function(a, b, c) {
							a = this.getkey(a, b);
							d.cacheObj[a] = c
						}
					};
					this.ajaxFun = function(b) {
						var d = b.data;
						b.isEncrypt && (d = this.getEncryptData(b.data));
						d = {
							url: b.url,
							data: d,
							cache: b.cache,
							dataType: b.dataType,
							type: b.type,
							dataFilter: b.dataFilter,
							jsonpCallback: b.jsonpCallback,
							timeout: b.timeout,
							success: function(d, e, l) {
								b.lock && $.Listeners.pub(b.event.ajaxUnlock).success();
								a.filter(d, b, function(d) {
									b.isCache && a.cache.set(b.cacheKeys, b.data,
									d);
									null != b.successCallback && b.successCallback(
										d)
								});
								"jsonp" === b.dataType && window.VIPSHOP && window.VIPSHOP
									.sentry && window.VIPSHOP.sentry.sendHttpMessage &&
									VIPSHOP.sentry.sendHttpMessage({
										api_name: b.url,
										request_time: c,
										response_time: (new Date).getTime(),
										status: l.status,
										request_url: b.url,
										service_code: "undefined" != typeof d.code ? d
											.code : d.status,
										msg: d.msg || "",
										retryTimes: 0,
										network_mark: 1
									})
							},
							error: function(d, e, l) {
								var g = {
									ext: {
										requestUrl: this.url,
										textStatus: e,
										status: d.status
									}
								};
								b.lock && $.Listeners.pub(b.event.ajaxUnlock).success();
								0 < b.ajaxTryTimes ? (b.ajaxTryTimes--,
										a.ajaxFun(b)) : null != b.errorCallback && b
									.errorCallback(d, e, l);
								"" != b.code && VIPSHOP.report.send && VIPSHOP.report.send(b
									.code, g);
								"jsonp" === b.dataType && window.VIPSHOP && window.VIPSHOP
									.sentry && window.VIPSHOP.sentry.sendHttpMessage &&
									VIPSHOP.sentry.sendHttpMessage({
										api_name: b.url,
										request_time: c,
										response_time: (new Date).getTime(),
										status: d.status,
										request_url: b.url,
										msg: "",
										retryTimes: b.ajaxTryTimes,
										network_mark: 0
									})
							},
							complete: function() {
								b.completeCallback && b.completeCallback()
							}
						};
						$.isEmptyObject(b.xhrFields) || (d.xhrFields = b.xhrFields);
						b.crossDomain && (d.crossDomain = b.crossDomain);
						$.isEmptyObject(b.headers) || (d.headers = b.headers);
						$.ajax(d)
					};
					this.getEncryptData = function(a) {
						return {
							api_key: a && a.api_key ? a.api_key :
								"70f71280d5d547b2a7bb370a529aeea1",
							pc_eversion: 1,
							skey: this.skey,
							pc_edata: a
						}
					};
					this.encryptAjaxFun = function(b) {
						var d = this;
						$.Loader.advScript({
							name: "plugin.vipParamsEncrypt",
							url: "//shop.vipstatic.com/js/public/plugins/vipParamsEncrypt-hash-2de62b73.js"
						});
						$.Listeners.sub("plugin.vipParamsEncrypt").onsuccess(function() {
							b.data = window.vipParamsEncrypt.encrypt(d.skey, b.data);
							b.headers && b.headers.Authorization && b.isEncrypt && (b
								.headers = {
									Authorization: e.getSign(b.url, d.getEncryptData(b
										.data))
								});
							a.ajaxFun(b)
						})
					};
					d.preFilter(function() {
						if (d.isCache && void 0 != a.cache.get(d.cacheKeys, d.data)) {
							if (null != d.successCallback) {
								var b = a.cache.get(d.cacheKeys, d.data);
								d.successCallback(b)
							}
						} else
							d.lock && $.Listeners.pub(d.event.ajaxLock).success(),
							d.isEncrypt ? a.encryptAjaxFun(d) : a.ajaxFun(d)
					});
					return this
				}
			};
		h.exports = function(b) {
			c.init(b)
		}
	}, {
		"../../../plugins/Authorization": 79
	}],
	97: [function(g, h, p) {
		h.exports = {
			data: {
				urlSet: []
			},
			initParam: function(e) {
				var c = {
					app_platform: "pc",
					session_id: "-99",
					mars_cid: $.Cookie.get("mars_cid") || "-99",
					user_id: $.Cookie.get("VipRUID") || "-99",
					app_name: "pc",
					app_type: "web",
					monitor_name: "",
					monitor_data: "",
					monitor_ext: "-99",
					monitor_time: Math.floor((new Date).getTime() / 1E3),
					app_version: "7.0",
					network: "-99",
					latitude: "-99",
					longitude: "-99",
					model: "-99",
					os_version: "-99",
					rom: "-99"
				};
				return $.extend(c, e || {})
			},
			hitRulesOneOfTen: function(e) {
				if (10 == this.data.urlSet.length)
					return e = this.data.urlSet[Math.floor(10 * Math.random())],
						this.data.urlSet = [],
						e;
				this.data.urlSet.push(e.param);
				return !1
			},
			send: function(e) {
				if (e = this.checkRules(e))
					e = $.stringifyJSON(this.initParam(e)),
					$.ajax({
						type: "POST",
						url: "//sc.appvipshop.com/vips-mobile-tracker/router.do?service=vip.monitor.logger",
						data: e
					})
			},
			checkRules: function(e) {
				switch (e.hitRules) {
					case "oneOfTen":
						return this.hitRulesOneOfTen(e);
					default:
						return e.param
				}
			}
		}
	}, {}],
	98: [function(g, h, p) {
		h.exports = function(e) {
			var c = ["//a.vpimg2.com", "//a.vpimg3.com", "//a.vpimg4.com"];
			if (e) {
				if (!/^http:\/\/|^https:\/\/|^\/\//g.test(e)) {
					var b = "";
					"/" != e.substring(0, 1) && (b = "/");
					e = b + e;
					for (i = b = 0; i < e.length; i++)
						b += e.substr(i, 1).charCodeAt();
					e = c[b % c.length] + e
				}
				e = e.replace(RegExp("^http:|^https:", "g"), "")
			}
			return e
		}
	}, {}],
	99: [function(g, h, p) {
		var e = 1;
		try {
			Object.prototype.hasOwnProperty.call(window, "devicePixelRatio") ? e = window.devicePixelRatio :
				Object.prototype.hasOwnProperty.call(screen, "deviceXDPI") && (e = Math.round(screen
					.deviceXDPI / screen.logicalXDPI))
		} catch (c) {
			e = 1
		}
		h.exports = function(b, a, c, d) {
			return b ? b.replace(/(\.[^.][jpg|png]+)$/, function(b) {
				return "_" + Math.round(a * e) + "x" + Math.round(c * e) + "_" + (d || "90") + b
			}) : ""
		}
	}, {}],
	100: [function(g, h, p) {
		g = g("./lib/template");
		g.helper("cutter", function(e, c) {
			return e.length > c ? e.substr(0, c - 1) + "..." : e
		});
		g.helper("delProtocolHeader", function(e) {
			return e = e.replace(/^http:|https:/i, "")
		});
		g.helper("descnFormat", function(e) {
			return e = e.replace(/([0-9.]+[\u5143\u6298\u4ef6]?)/g, function(c, b) {
				return '<span class="u-price">' + b + "</span>"
			})
		});
		g.helper("formatNumber", function(e) {
			return e = e.replace(/(0-9.)/g, function(c, b) {
				return '<span class="u-price">' + b + "</span>"
			})
		});
		g.helper("formatNumber", function(e) {
			return e = e.replace(/(0-9.)/g, function(c, b) {
				return '<span class="u-price">' + b + "</span>"
			})
		});
		g.helper("encrypt", function(e, c) {
			var b = "";
			if ("" != e)
				switch (c) {
					case "cardNo":
						b = e.substr(0, 4) + "**" + e.substr(e.length - 4, 4)
				}
			return b
		});
		g.helper("buyMoreLink", function(e, c) {
			return "//www.vip.com"
		});
		h.exports = g
	}, {
		"./lib/template": 101
	}],
	101: [function(g, h, p) {
		! function() {
			function e(a) {
				return "'" + a.replace(/('|\\)/g, "\\$1").replace(/\r/g, "\\r").replace(/\n/g, "\\n") + "'"
			}

			function c(a, b) {
				function d(a) {
					return t += a.split(/\n/).length - 1,
						k && (a = a.replace(/\s+/g, " ").replace(/\x3c!--.*?--\x3e/g, "")),
						a && (a = C[1] + e(a) + C[2] + "\n"),
						a
				}

				function c(a) {
					var d = t;
					if (n ? a = n(a, b) : f && (a = a.replace(/\n/g, function() {
							return t++,
								"$line=" + t + ";"
						})),
						0 === a.indexOf("=")) {
						var e = g && !/^=[=#]/.test(a);
						(a = a.replace(/^=[=#]?|[\s;]*$/g, ""),
							e) ? (e = a.replace(/\s*\([^\)]+\)/, ""),
							m[e] || /^(include|print)$/.test(e) || (a = "$escape(" + a + ")")) : a =
							"$string(" + a + ")";
						a = C[1] + a + C[2]
					}
					return f && (a = "$line=" + d + ";" + a),
						s(a.replace(u, "").replace(A, ",").replace(v, "").replace(z, "").replace(x, "")
							.split(/^$|,+/),
							function(a) {
								a && !r[a] && (Q += a + "=" + ("print" === a ? p : "include" === a ? I : m[
										a] ? "$utils." + a : q[a] ? "$helpers." + a : "$data." + a) +
									",",
									r[a] = !0)
							}),
						a + "\n"
				}
				var f = b.debug,
					l = b.closeTag,
					n = b.parser,
					k = b.compress,
					g = b.escape,
					t = 1,
					r = {
						$data: 1,
						$filename: 1,
						$utils: 1,
						$helpers: 1,
						$out: 1,
						$line: 1
					},
					h = "".trim,
					C = h ? ["$out='';", "$out+=", ";", "$out"] : ["$out=[];", "$out.push(", ");",
						"$out.join('')"
					],
					h = h ? "$out+=text;return $out;" : "$out.push(text);",
					p = "function(){var text=''.concat.apply('',arguments);" + h + "}",
					I =
					"function(filename,data){data=data||$data;var text=$utils.$include(filename,data,$filename);" +
					h + "}",
					Q = "'use strict';var $utils=this,$helpers=$utils.$helpers," + (f ? "$line=0," : ""),
					G = C[0],
					h = "return new String(" + C[3] + ");";
				s(a.split(b.openTag), function(a) {
					a = a.split(l);
					var b = a[0],
						f = a[1];
					1 === a.length ? G += d(b) : (G += c(b),
						f && (G += d(f)))
				});
				h = Q + G + h;
				f && (h = "try{" + h +
					"}catch(e){throw {filename:$filename,name:'Render Error',message:e.message,line:$line,source:" +
					e(a) + ".split(/\\n/)[$line-1].replace(/^\\s+/,'')};}");
				try {
					var U = new Function("$data", "$filename", h);
					return U.prototype = m,
						U
				} catch (M) {
					throw M.temp = "function anonymous($data,$filename) {" + h + "}",
						M;
				}
			}
			var b = function(a, b) {
				return "string" == typeof b ? C(b, {
					filename: a
				}) : d(a, b)
			};
			b.version = "3.0.0";
			b.config = function(b, d) {
				a[b] = d
			};
			var a = b.defaults = {
					openTag: "<%",
					closeTag: "%>",
					escape: !0,
					cache: !0,
					compress: !1,
					parser: null
				},
				f = b.cache = {};
			b.render = function(a, b) {
				return C(a, b)
			};
			var d = b.renderFile = function(a, d) {
				var c = b.get(a) || r({
					filename: a,
					name: "Render Error",
					message: "Template not found"
				});
				return d ? c(d) : c
			};
			b.get = function(a) {
				var b;
				if (f[a])
					b = f[a];
				else if ("object" == typeof document) {
					var d = document.getElementById(a);
					d && (b = (d.value || d.innerHTML).replace(/^\s*|\s*$/g, ""),
						b = C(b, {
							filename: a
						}))
				}
				return b
			};
			var n = function(a, b) {
					return "string" != typeof a && (b = typeof a,
							"number" === b ? a += "" : a = "function" === b ? n(a.call(a)) : ""),
						a
				},
				l = {
					"<": "&#60;",
					">": "&#62;",
					'"': "&#34;",
					"'": "&#39;",
					"&": "&#38;"
				},
				k = function(a) {
					return l[a]
				},
				g = Array.isArray || function(a) {
					return "[object Array]" === {}.toString.call(a)
				},
				m = b.utils = {
					$helpers: {},
					$include: d,
					$string: n,
					$escape: function(a) {
						return n(a).replace(/&(?![\w#]+;)|[<>"']/g, k)
					},
					$each: function(a, b) {
						var d, c;
						if (g(a))
							for (d = 0,
								c = a.length; c > d; d++)
								b.call(a, a[d], d, a);
						else
							for (d in a)
								b.call(a, a[d], d)
					}
				};
			b.helper = function(a, b) {
				q[a] = b
			};
			var q = b.helpers = m.$helpers;
			b.onerror = function(a) {
				var b = "Template Error\n\n",
					d;
				for (d in a)
					b += "<" + d + ">\n" + a[d] + "\n\n";
				"object" == typeof window.console && window.console.error(b)
			};
			var r = function(a) {
					return b.onerror(a),
						function() {
							return "{Template Error}"
						}
				},
				C = b.compile = function(b, d) {
					function e(a) {
						try {
							return new k(a, n) + ""
						} catch (c) {
							return d.debug ? r(c)() : (d.debug = !0,
								C(b, d)(a))
						}
					}
					d = d || {};
					for (var l in a)
						void 0 === d[l] && (d[l] = a[l]);
					var n = d.filename;
					try {
						var k = c(b, d)
					} catch (g) {
						return g.filename = n || "anonymous",
							g.name = "Syntax Error",
							r(g)
					}
					return e.prototype = k.prototype,
						e.toString = function() {
							return k.toString()
						},
						n && d.cache && (f[n] = e),
						e
				},
				s = m.$each,
				u =
				/\/\*[\w\W]*?\*\/|\/\/[^\n]*\n|\/\/[^\n]*$|"(?:[^"\\]|\\[\w\W])*"|'(?:[^'\\]|\\[\w\W])*'|\s*\.\s*[$\w\.]+/g,
				A = /[^\w$]+/g,
				v = RegExp("" + ("\\b" +
					"break,case,catch,continue,debugger,default,delete,do,else,false,finally,for,function,if,in,instanceof,new,null,return,switch,this,throw,true,try,typeof,var,void,while,with,abstract,boolean,byte,char,class,const,double,enum,export,extends,final,float,goto,implements,import,int,interface,long,native,package,private,protected,public,short,static,super,synchronized,throws,transient,volatile,arguments,let,yield,undefined"
					.replace(/,/g, "\\b|\\b") + "\\b"), "g"),
				z = /^\d[^,]*|,\d[^,]*/g,
				x = /^,+|,+$/g;
			a.openTag = "{{";
			a.closeTag = "}}";
			a.parser = function(a, d) {
				a = a.replace(/^\s/, "");
				var c = a.split(" "),
					f = c.shift(),
					e = c.join(" ");
				switch (f) {
					case "if":
						a = "if(" + e + "){";
						break;
					case "else":
						c = "if" === c.shift() ? " if(" + c.join(" ") + ")" : "";
						a = "}else" + c + "{";
						break;
					case "/if":
						a = "}";
						break;
					case "each":
						f = c[0] || "$data";
						e = (c[2] || "$value") + "," + (c[3] || "$index");
						"as" !== (c[1] || "as") && (f = "[]");
						a = "$each(" + f + ",function(" + e + "){";
						break;
					case "/each":
						a = "});";
						break;
					case "echo":
						a = "print(" + e + ");";
						break;
					case "print":
					case "include":
						a = f + "(" + c.join(",") + ");";
						break;
					default:
						if (-1 !== e.indexOf("|")) {
							var l = d.escape;
							0 === a.indexOf("#") && (a = a.substr(1),
								l = !1);
							c = 0;
							f = a.split("|");
							e = f.length;
							for (l = (l ? "$escape" : "$string") + "(" + f[c++] + ")"; e > c; c++)
								var n = f[c].split(":"),
									k = n.shift(),
									n = n.join(":") || "",
									l = (n && (n = ", " + n),
										"$helpers." + k + "(" + l + n + ")");
							a = "=#" + l
						} else
							a = b.helpers[f] ? "=#" + f + "(" + c.join(",") + ");" : "=" + a
				}
				return a
			};
			"undefined" != typeof p ? h.exports = b : "function" == typeof define ? define(function() {
				return b
			}) : this.template = b
		}()
	}, {}],
	102: [function(g, h, p) {
		h.exports = {
			Tooltips: g("./modules/Tooltips"),
			DropDown: g("./modules/DropDown"),
			Button: new(g("./modules/Button")),
			Checkbox: g("./modules/Checkbox")
		}
	}, {
		"./modules/Button": 103,
		"./modules/Checkbox": 104,
		"./modules/DropDown": 105,
		"./modules/Tooltips": 106
	}],
	103: [function(g, h, p) {
		(function(e) {
			var c = function(b) {
				return this.init(b)
			};
			e.extend(c.prototype, {
				config: {
					disableClass: "ui-btn-disable",
					loadingClass: "z-ui-btn-loading"
				},
				init: function(b) {
					this.config = e.extend({}, this.config, b)
				},
				reset: function(b) {
					b.removeClass([this.config.disableClass, this.config.loadingClass].join(
						" "))
				},
				loading: function(b) {
					b.addClass(this.config.loadingClass)
				},
				disable: function(b) {
					b.addClass(this.config.disableClass)
				},
				isLoading: function(b) {
					return b.hasClass(this.config.loadingClass)
				},
				isDisable: function(b) {
					return b.hasClass(this.config.disableClass) || b.hasClass(this.config
						.loadingClass)
				}
			});
			h.exports = c
		})(jQuery)
	}, {}],
	104: [function(g, h, p) {
		var e = {
			config: {
				radioModule: ".ui-radio",
				checkboxModule: ".ui-checkbox,.J_bar_checkbox",
				disabledLabelCls: "f-not-allowed",
				checkCallback: function() {}
			},
			init: function(c) {
				$.extend(this.config, c)
			},
			updateUI: function(c, b, a) {
				var f = this;
				c.each(function() {
					var d = $(this),
						c = d.attr("type");
					d.prop("checked", b);
					a ? d.attr("disabled", "disabled") : d.removeAttr("disabled");
					f.setClass(d, c)
				})
			},
			refreshUI: function() {
				var c = this;
				$.each(["checkbox", "radio"], function(b, a) {
					for (var f = c.config[a + "Module"].split(","), d = 0, e = f.length; d <
						e; d++)
						$(f[d] + ' input:not([simulate="done"])').each(function() {
							var b = $(this);
							c.setClass(b, a);
							b.attr("simulate", "done")
						})
				})
			},
			setClass: function(c, b) {
				var a = c.attr("id"),
					f = $('label[for="' + a + '"]');
				void 0 != a && 0 != f.size() && ("disabled" == c.attr("disabled") ? f.addClass(this
					.config.disabledLabelCls) : f.removeClass(this.config.disabledLabelCls));
				c.prop("checked");
				this.config.checkCallback(c)
			}
		};
		$(document).on("click.vui.checkbox.data-api", [e.config.radioModule, e.config.checkboxModule,
			'[data-toggle="checkbox"]'
		].join(" "), function(c) {
			c = $(c.target).find("input");
			"disabled" != c.attr("disabled") && e.setClass(c)
		});
		e.refreshUI();
		h.exports = e
	}, {}],
	105: [function(g, h, p) {
		g = function(e) {
			this._init(e)
		};
		$.extend(g.prototype, {
			defaultConfig: {
				jqContainer: null,
				triggerClass: "ui-dropdown-hd",
				listContainerClass: "ui-dropdown-bd",
				listClass: "ui-dropdown-menu",
				optionClass: "ui-dropdown-menu li",
				optionSelectedClass: "selected",
				openClass: "z-ui-dropdown-open",
				selectedClass: "z-ui-dropdown-selected",
				txtClass: "ui-dropdown-current",
				onSelect: null,
				onReset: null,
				onBeforeOpen: null,
				onClose: null,
				defaultValue: -1,
				defaultText: "\u8bf7\u9009\u62e9",
				loadingOptionHTML: '<li class="ui-dropdown-loading"><i class="ii-loading-pink-24x24"></i><span class="text">\u52a0\u8f7d\u4e2d...</span></li>'
			},
			_init: function(e) {
				this.config = $.extend({}, this.defaultConfig, e);
				this.isIgnore = this.isFinish = !1;
				this.isEnable = !0;
				this._bindEvent();
				this.reset(!0)
			},
			_bindEvent: function() {
				var e = this;
				this.config.jqContainer.on("click", "." + this.config.triggerClass, function() {
					e.isEnable && (e.config.jqContainer.hasClass(e.config.openClass) ? e
						.closeList() : e.openList())
				}).on("mousedown", "." + this.config.optionClass, function(c) {
					e.config.jqContainer.find("." + e.config.optionSelectedClass)
						.removeClass(e.config.optionSelectedClass)
				}).on("click", "." + this.config.optionClass, function(c) {
					c = $(this);
					e.selectOption(c);
					return !1
				});
				$("body").on("click", function(c) {
					0 == $(c.target).closest(e.config.jqContainer).size() && e.config
						.jqContainer.hasClass(e.config.openClass) && e.closeList()
				})
			},
			setList: function(e) {
				this.config.jqContainer.find("." + this.config.listClass).html(e);
				return this
			},
			openList: function() {
				this.config.onBeforeOpen && !1 === this.config.onBeforeOpen.call(this) || this
					.config.jqContainer.addClass(this.config.openClass);
				return this
			},
			closeList: function() {
				this.config.jqContainer.removeClass(this.config.openClass);
				this.config.onClose && this.config.onClose.call(this);
				return this
			},
			selectOption: function(e) {
				this.value = e.attr("data-value");
				this.text = e.attr("data-text");
				this.config.jqContainer.find("." + this.config.optionSelectedClass).removeClass(
					this.config.optionSelectedClass);
				e.addClass(this.config.optionSelectedClass);
				this.config.jqContainer.addClass(this.config.selectedClass).find("." + this
					.config.txtClass).text(this.text);
				this.isFinish = !0;
				this.config.onSelect && this.config.onSelect.call(this, this.text, this.value,
					e);
				this.closeList();
				return this
			},
			selectOptionByValue: function(e) {
				e = this.config.jqContainer.find('[data-value="' + e + '"]');
				return 0 < e.size() ? this.selectOption(e) : null
			},
			getValue: function() {
				return this.value
			},
			getText: function() {
				return this.text
			},
			ignore: function() {
				this.isIgnore = !0;
				this.config.jqContainer.hide();
				return this
			},
			reset: function(e) {
				this.value = this.config.defaultValue;
				this.text = this.config.defaultText;
				this.isIgnore = this.isFinish = !1;
				this.closeList();
				this.config.jqContainer.show();
				this.config.jqContainer.removeClass(this.config.selectedClass).find("." + this
					.config.txtClass).text(this.text); -
				1 != this.value && this.selectOptionByValue(this.value);
				e || (this.setList(this.config.loadingOptionHTML),
					this.config.onReset && this.config.onReset.call(this, this.text, this
						.value, this.config.jqContainer));
				return this
			},
			disable: function() {
				this.isEnable = !1
			},
			enable: function() {
				this.isEnable = !0
			}
		});
		h.exports = g
	}, {}],
	106: [function(g, h, p) {
		(function(e) {
			var c = {
				config: {
					jqTooltips: null,
					isDynamic: !1,
					hoverSelector: ".J_tooltips_trigger",
					formItem: ".J_form_item",
					setFormItemClass: !1,
					formItemTipsShow: "is-form-item-tooltips-in",
					tipsClass: "ui-tooltips",
					openClass: "z-ui-tooltips-in",
					closeClass: "z-ui-tooltips-out",
					during: 150
				},
				init: function(a) {
					e.extend(this.config, a)
				},
				open: function(a, b) {
					var d = this,
						c = {
							autoClose: 0
						};
					e.extend(c, b);
					this.isOpening(a) || (a = a || this.config.jqTooltips,
						clearTimeout(a.data("vTooltipTimeout")),
						a.removeClass(this.config.closeClass),
						a.addClass(this.config.openClass),
						0 != c.autoClose && setTimeout(function() {
							d.close(a)
						}, c.autoClose))
				},
				isOpening: function(a) {
					a = a || this.config.jqTooltips;
					return a.hasClass(this.config.openClass) && !a.hasClass(this.config
						.closeClass)
				},
				close: function(a) {
					var b = this;
					a.each(function(a, c) {
						var l = e(c);
						b.isOpening(l) && (l = l || b.config.jqTooltips,
							l.addClass(b.config.closeClass),
							l.data("vTooltipTimeout", setTimeout(function() {
								l.removeClass(b.config.openClass + " " + b
									.config.closeClass)
							}, b.config.during)))
					})
				},
				hideErrTips: function(a, b) {
					var d = a,
						c = {
							formErrTips: this.config.openClass
						};
					e.extend(c, b);
					a.hasClass(c.formErrTips) || (d = a.find("." + c.formErrTips));
					this.config.setFormItemClass && d.closest(this.config.formItem).removeClass(
						this.config.formItemTipsShow);
					0 != d.size() && this.close(d)
				},
				showErrTips: function(a, b) {
					var d = {
						autoHide: !0,
						formErrTips: this.config.openClass,
						jqForm: a.closest(".J_form"),
						hideItem: null
					};
					e.extend(d, b);
					d.autoHide && (d = null == d.hideItem ? d.jqForm.find("." + d.formErrTips) :
						d.hideItem,
						this.hideErrTips(d));
					d = a.find(".ui-tooltips-warning");
					this.config.setFormItemClass && d.closest(this.config.formItem).addClass(
						this.config.formItemTipsShow);
					this.open(d)
				}
			};
			if (VIPSHOP.isMobile) {
				var b = function(a) {
					a = a.find("." + c.config.tipsClass);
					c.isOpening(a) ? c.close(a) : c.open(a)
				};
				e(document).on("click.vui.tooltips.data-api", '[data-toggle="tooltip"]', function(a) {
					a = e(this);
					b(a)
				}).on("click.vui.tooltips.data-api", c.config.hoverSelector, function(a) {
					a = e(this);
					b(a)
				})
			} else
				e("body").on("mouseenter.vui.tooltips.data-api", c.config.hoverSelector, function(a) {
					c.open(e(this).find("." + c.config.tipsClass))
				}).on("mouseleave.vui.tooltips.data-api", c.config.hoverSelector, function(a) {
					c.close(e(this).find("." + c.config.tipsClass))
				}),
				e(document).on("mouseenter.vui.tooltips.data-api", '[data-toggle="tooltip"]', function(
					a) {
					c.open(e(this).find("." + c.config.tipsClass))
				}).on("mouseleave.vui.tooltips.data-api", '[data-toggle="tooltip"]', function(a) {
					c.close(e(this).find("." + c.config.tipsClass))
				});
			h.exports = c
		})(jQuery)
	}, {}],
	107: [function(g, h, p) {
		h.exports = {
			status: {
				formErr: "z-ui-form-item-warning",
				formErrTips: "z-ui-tooltips-in"
			},
			UI: {
				formItemSelector: ".J_form_item",
				formItemErrTipsTxtSelector: ".J_tip_txt",
				formItemTooltip: ".ui-tooltips"
			},
			onValidate: function(e) {
				var c = this,
					b = e.attr("name"),
					b = "identityNumber" == b ? this[e.attr("addname")] : this[b],
					a = e.closest(c.UI.formItemSelector);
				if (b)
					return e = b($.trim(e.val())),
						e.valid ? (a.removeClass(c.status.formErr),
							a.find(c.UI.formItemTooltip).removeClass(c.status.formErrTips)) : (a
							.find(c.UI.formItemErrTipsTxtSelector).html(e.msg),
							a.addClass(c.status.formErr),
							setTimeout(function() {
								a.find(c.UI.formItemTooltip).addClass(c.status.formErrTips)
							}, 100)),
						e
			},
			onSubmit: function(e) {
				var c = this;
				e.find("." + that.status.formErrTips).removeClass(that.status.formErrTips);
				e.find("input[type=text],input[type=hidden],textarea").each(function() {
					var b = $(this);
					c.onValidate(b, !1)
				});
				e = e.find("." + that.status.formErr);
				return 0 < e.size() ? (e.first().addClass(that.status.formErrTips),
					!1) : !0
			},
			cardName: function(e) {
				var c = {
						valid: !1,
						msg: "\u8bf7\u8f93\u5165\u6b63\u786e\u7684\u59d3\u540d"
					},
					b = /^[a-zA-Z0-9\u4e00-\u9fa5\u00b7]{2,20}$/;
				"" == e ? c.msg =
					"\u8bf7\u8f93\u5165\u59d3\u540d\uff0c\u4fe1\u606f\u52a0\u5bc6\u5904\u7406\uff0c\u4ec5\u7528\u4e8e\u94f6\u884c\u9a8c\u8bc1" :
					2 > e.length ? c.msg =
					"\u6301\u5361\u4eba\u59d3\u540d\u957f\u5ea6\u4e0d\u80fd\u5c0f\u4e8e2\u4f4d" :
					20 < e.length ? c.msg =
					"\u6301\u5361\u4eba\u59d3\u540d\u957f\u5ea6\u6700\u5927\u4e3a20\u4f4d" : c
					.valid = b.test(e);
				return c
			},
			idNo: function(e) {
				var c = {
						valid: !1,
						msg: "\u8eab\u4efd\u8bc1\u53f7\u7801\u662f15\u621618\u4f4d\u6570\u5b57\uff0c\u8bf7\u6b63\u786e\u586b\u5199"
					},
					b = /^[a-zA-Z0-9]{15,18}$/;
				"" == e ? c.msg =
					"\u8bf7\u8f93\u5165\u8bc1\u4ef6\u53f7\u7801\uff0c\u4fe1\u606f\u52a0\u5bc6\u5904\u7406\uff0c\u4ec5\u7528\u4e8e\u94f6\u884c\u9a8c\u8bc1" :
					c.valid = b.test(e);
				return c
			},
			cardNo: function(e) {
				var c = {
						valid: !1,
						msg: "\u8bf7\u8f93\u5165\u60a8\u6b63\u786e\u7684\u50a8\u84c4\u5361\u5361\u53f7"
					},
					b = /^\d{15,19}$/;
				e = e.replace(/\s/g, "");
				"" == e ? c.msg = "\u8bf7\u8f93\u5165\u5361\u53f7" : (c.valid = b.test(e),
					c.valid || 2 !== QuickBindView.data.cardType || (c.msg =
						"\u8bf7\u8f93\u5165\u60a8\u6b63\u786e\u7684\u4fe1\u7528\u5361\u5361\u53f7"
						));
				return c
			},
			cvv2: function(e) {
				var c = {
						valid: !1,
						msg: "\u8bf7\u8f93\u5165\u5361\u80cc\u9762\u672b\u4e09\u4f4d\u6570\u5b57"
					},
					b = /^\d{3}$/;
				"" == e ? c.msg = "\u8bf7\u8f93\u5165\u5361\u9a8c\u8bc1\u7801" : c.valid = b.test(
				e);
				return c
			},
			mobileNo: function(e) {
				var c = {
						valid: !1,
						msg: "\u8bf7\u6b63\u786e\u8f93\u5165\u624b\u673a\u53f7"
					},
					b = /^1\d{10}$/;
				"" == e ? c.msg = "\u8bf7\u8f93\u5165\u624b\u673a\u53f7" : c.valid = b.test(e);
				return c
			},
			validate: function(e) {
				var c = {
					valid: !1,
					msg: "\u8bf7\u6b63\u786e\u586b\u5199\u4fe1\u7528\u5361\u6709\u6548\u671f"
				};
				c.valid = /^\d{4}$/.test(e);
				return c
			},
			smsCode: function(e) {
				var c = {
						valid: !1,
						msg: "\u77ed\u4fe1\u9a8c\u8bc1\u7801\u4e3a\u516d\u4f4d\u6570\u5b57"
					},
					b = /^\d{6}$/;
				"" == e ? c.msg = "\u8bf7\u8f93\u5165\u77ed\u4fe1\u9a8c\u8bc1\u7801" : c.valid = b
					.test(e);
				return c
			},
			fixName: function(e) {
				var c = e.val();
				e.val(c.replace(/(\u3002|\uff0e|\.)/g, "\u00b7"))
			},
			companyName: function(e) {
				var c = {
					valid: !1,
					msg: ""
				};
				"" == e ? c.msg = "\u8bf7\u586b\u5199\u6b63\u786e\u516c\u53f8\u540d\u79f0" : 70 < e
					.length ? (c.valid = !1,
						c.msg = "\u516c\u53f8\u540d\u79f0\u8d85\u8fc770\u4e2a\u5b57\u7b26") : c
					.valid = !0;
				return c
			},
			companyNameNew: function(e) {
				var c = {
						valid: !1,
						msg: ""
					},
					b =
					"\u5927\u961f \u5927\u53a6 \u9152\u5e97 \u7ba1\u7406\u5904 \u7ba1\u7406\u5904 \u9986 \u4e2d\u961f \u82b1\u56ed \u5382 \u5382 \u4e2d\u5fc3 \u95e8\u8bca \u5c0f\u5b66 \u4e2d\u5b66 \u5927\u5b66 \u5e7c\u513f\u56ed \u9662 \u5e97 \u90e8 \u5927\u5b66 \u5e7c\u513f\u56ed \u9662 \u5e97 \u90e8 \u6240 \u5c45\u59d4 \u5e02\u573a \u529e\u4e8b\u5904 \u653f\u5e9c \u6240 \u5c45\u59d4 \u529e\u4e8b\u5904 \u653f\u5e9c \u5c40 \u5ba4 \u516c\u53f8 \u673a\u6784 \u7ad9 \u94f6\u884c \u5206\u884c \u4f1a \u516c\u56ed \u5b66\u6821 \u5904 \u7f72 \u5b66\u9662 \u5e93 \u96c6\u56e2 \u793e \u5385 \u529e \u884c"
					.split(" ");
				if ("" == e)
					c.msg = "\u8bf7\u586b\u5199\u6b63\u786e\u516c\u53f8\u540d\u79f0";
				else if (70 < e.length)
					c.valid = !1,
					c.msg = "\u516c\u53f8\u540d\u79f0\u8d85\u8fc770\u4e2a\u5b57\u7b26";
				else {
					for (var a = !1, f = 0, d = b.length; f < d; f++)
						if (0 <= e.indexOf(b[f])) {
							a = !0;
							break
						}
					a ? c.valid = !0 : c.msg =
						"\u8bf7\u586b\u5199\u6b63\u786e\u516c\u53f8\u540d\u79f0"
				}
				return c
			},
			companyCode: function(e) {
				var c = {
					valid: !1,
					msg: ""
				};
				"" == e ? c.msg =
					"\u8bf7\u586b\u5199\u6b63\u786e\u516c\u53f8\u7ec4\u7ec7\u673a\u6784/\u793e\u4f1a\u4fe1\u7528\u4ee3\u7801" :
					25 < e.length ? (c.valid = !1,
						c.msg =
						"\u516c\u53f8\u7ec4\u7ec7\u673a\u6784/\u793e\u4f1a\u4fe1\u7528\u4ee3\u7801\u8d85\u8fc725\u4e2a\u5b57\u7b26"
						) : c.valid = !0;
				return c
			},
			receiverName: function(e) {
				var c = {
						valid: !1,
						msg: "\u8bf7\u586b\u5199\u6b63\u786e\u6536\u4ef6\u4eba\u59d3\u540d"
					},
					b = /^[a-zA-Z0-9\u4e00-\u9fa5\u00b7]{2,16}$/;
				"" == e ? c.msg = "\u8bf7\u586b\u5199\u6b63\u786e\u6536\u4ef6\u4eba\u59d3\u540d" :
					2 > e.length ? c.msg =
					"\u6536\u4ef6\u4eba\u59d3\u540d\u957f\u5ea6\u4e0d\u80fd\u5c0f\u4e8e2\u4f4d" :
					16 < e.length ? c.msg =
					"\u6536\u4ef6\u4eba\u59d3\u540d\u957f\u5ea6\u6700\u5927\u4e3a16\u4f4d" : c
					.valid = b.test(e);
				return c
			},
			address: function(e) {
				var c = {
					valid: !1,
					msg: ""
				};
				"" == e ? c.msg = "\u8bf7\u586b\u5199\u6b63\u786e\u8be6\u7ec6\u5730\u5740" : 70 < e
					.length ? c.msg = "\u5730\u5740\u957f\u5ea6\u4e0d\u80fd\u5927\u4e8e70\u4f4d" : c
					.valid = !0;
				return c
			},
			name: function(e) {
				var c = {
						valid: !1,
						msg: "\u8bf7\u586b\u5199\u6b63\u786e\u59d3\u540d"
					},
					b = /^[a-zA-Z\u4e00-\u9fa5\u00b7]{2,16}$/;
				"" == e ? c.msg = "\u8bf7\u586b\u5199\u59d3\u540d" : 2 > e.length ? c.msg =
					"\u59d3\u540d\u957f\u5ea6\u4e0d\u80fd\u5c0f\u4e8e2\u4f4d" : 16 < e.length ? c
					.msg = "\u59d3\u540d\u957f\u5ea6\u6700\u5927\u4e3a16\u4f4d" : c.valid = b.test(
						e);
				return c
			},
			contactName: function(e) {
				var c = {
						valid: !1,
						msg: "\u8bf7\u586b\u5199\u6b63\u786e\u59d3\u540d"
					},
					b = /^[a-zA-Z\u4e00-\u9fa5\u00b7]{2,16}$/;
				"" == e ? c.msg = "\u8bf7\u586b\u5199\u6b63\u786e\u59d3\u540d" : 2 > e.length ? c
					.msg = "\u59d3\u540d\u957f\u5ea6\u4e0d\u80fd\u5c0f\u4e8e2\u4f4d" : 16 < e
					.length ? c.msg = "\u59d3\u540d\u957f\u5ea6\u6700\u5927\u4e3a16\u4f4d" : c
					.valid = b.test(e);
				return c
			},
			phone: function(e) {
				var c = {
						valid: !1,
						msg: "\u8bf7\u6b63\u786e\u8f93\u5165\u624b\u673a\u53f7"
					},
					b =
					/^1\d{10}$|^0(\d{2,3})(-)?\d{7,8}$|^(00)?(852|853)(-?)\d{8}$|^(00)?886(-?)(0?)[1-8]\d(-?)\d{6,8}$|^(00)?886(-)?(0)?9\d{8}$/;
				"" == e ? c.msg = "\u8bf7\u8f93\u5165\u624b\u673a\u53f7" : c.valid = b.test(e);
				return c
			},
			identity: function(e) {
				var c = {
						valid: !1,
						msg: "\u8bf7\u586b\u5199\u6b63\u786e\u768418\u4f4d\u8eab\u4efd\u8bc1\u53f7"
					},
					b = /^[0-9]{18}$|^[0-9]{17}[xX]$/;
				"" == e ? c.msg = "\u8bf7\u8f93\u5165\u8eab\u4efd\u8bc1\u53f7" : c.valid = b.test(
				e);
				return c
			},
			birthday: function(e) {
				var c = {
						valid: !1,
						msg: "\u8bf7\u6b63\u786e\u586b\u5199\u51fa\u751f\u65e5\u671f"
					},
					b = /^(\d{4})(-)(\d{2})(-)(\d{2})$/;
				"" == e ? c.msg = "\u8bf7\u9009\u62e9\u60a8\u7684\u51fa\u751f\u65e5\u671f" : c
					.valid = b.test(e);
				return c
			},
			firstName: function(e) {
				var c = {
						valid: !1,
						msg: "\u8bf7\u586b\u5199\u6b63\u786e\u7684\u82f1\u6587\u540d\u5b57"
					},
					b = /^[a-zA-Z]{2,30}$/;
				"" == e ? c.msg = "\u8bf7\u586b\u5199\u59d3\u540d" : 2 > e.length ? c.msg =
					"\u59d3\u540d\u957f\u5ea6\u4e0d\u80fd\u5c0f\u4e8e2\u4f4d" : 20 < e.length ? c
					.msg = "\u59d3\u540d\u957f\u5ea6\u6700\u5927\u4e3a30\u4f4d" : c.valid = b.test(
						e);
				return c
			},
			lastName: function(e) {
				var c = {
						valid: !1,
						msg: "\u8bf7\u586b\u5199\u6b63\u786e\u7684\u82f1\u6587\u59d3\u540d"
					},
					b = /^[a-zA-Z]{2,30}$/;
				"" == e ? c.msg = "\u8bf7\u586b\u5199\u59d3\u540d" : 2 > e.length ? c.msg =
					"\u59d3\u540d\u957f\u5ea6\u4e0d\u80fd\u5c0f\u4e8e2\u4f4d" : 20 < e.length ? c
					.msg = "\u59d3\u540d\u957f\u5ea6\u6700\u5927\u4e3a30\u4f4d" : c.valid = b.test(
						e);
				return c
			},
			mobilePhone: function(e) {
				var c = {
						valid: !1,
						msg: "\u8bf7\u586b\u5199\u6b63\u786e\u624b\u673a\u53f7\u7801"
					},
					b =
					/^1\d{10}$|^0(\d{2,3})(-)?\d{7,8}$|^(00)?(852|853)(-?)\d{8}$|^(00)?886(-?)(0?)[1-8]\d(-?)\d{6,8}$|^(00)?886(-)?(0)?9\d{8}$/;
				"" == e ? c.msg = "\u8bf7\u8f93\u5165\u624b\u673a\u53f7" : c.valid = b.test(e);
				return c
			},
			passport: function(e) {
				var c = {
						valid: !1,
						msg: "\u8bf7\u8f93\u6b63\u786e\u76849\u4f4d\u62a4\u7167\u53f7\u7801"
					},
					b = /^[a-zA-Z0-9]{9}$/;
				"" == e ? c.msg = "\u8bf7\u8f93\u5165\u62a4\u7167\u53f7" : c.valid = b.test(e);
				return c
			},
			taiwan: function(e) {
				var c = {
						valid: !1,
						msg: "\u8bf7\u8f93\u6b63\u786e\u76849\u4f4d\u53f0\u6e7e\u901a\u884c\u8bc1\u53f7\u7801"
					},
					b = /^[a-zA-Z0-9]{9}$/;
				"" == e ? c.msg = "\u8bf7\u8f93\u5165\u53f0\u6e7e\u901a\u884c\u8bc1" : c.valid = b
					.test(e);
				return c
			},
			macao: function(e) {
				var c = {
						valid: !1,
						msg: "\u8bf7\u8f93\u5165\u6b63\u786e\u76849\u4f4d\u6e2f\u6fb3\u901a\u884c\u8bc1\u53f7\u7801"
					},
					b = /^[a-zA-Z0-9]{9}$/;
				"" == e ? c.msg = "\u8bf7\u8f93\u5165\u6e2f\u6fb3\u901a\u884c\u8bc1" : c.valid = b
					.test(e);
				return c
			},
			isObjEmpty: function(e) {
				for (var c in e)
					return !1;
				return !0
			}
		}
	}, {}],
	108: [function(g, h, p) {
		var e = g("./urlParam.js"),
			c = g("./modules/http/httpV2.js");
		h.exports = {
			getPcDocument: function(b, a) {
				var f = $.Deferred();
				void 0 == a && (a = "getPcDocument");
				c({
					url: "//mapi.vip.com/vips-mobile/rest/operation/pc/document/v1",
					data: e.get({
						document_code: b
					}),
					cache: !1,
					dataType: "jsonp",
					type: "GET",
					jsonpCallback: a,
					timeout: 8E3,
					successCallback: function(a) {
						1 == a.code && a.data && a.data.length ? f.resolve(a.data) : f
							.reject()
					},
					errorCallback: function() {
						f.reject()
					}
				});
				return f.promise()
			}
		}
	}, {
		"./modules/http/httpV2.js": 96,
		"./urlParam.js": 110
	}],
	109: [function(g, h, p) {
		var e = g("urlParam");
		g = {
			data: {
				userId: $.Cookie.get("VipRUID") || ""
			},
			getSwitch: function() {
				$.ajax({
					url: "//mapi.vip.com/vips-mobile/rest/pcoperation/switch/v1",
					data: e.get({
						switch_id: "1122"
					}),
					cache: !1,
					dataType: "jsonp",
					type: "GET",
					jsonpCallback: "getPcOperation",
					timeout: 8E3,
					success: function(c, b, a) {
						1 == c.code && c.data && 0 < c.data.length ? $.Listeners.pub(
							"get.switchMP").success({
							status: c.data[0].status
						}) : $.Listeners.pub("get.switchMP").success({
							status: 1
						})
					},
					error: function() {
						$.Listeners.pub("get.switchMP").success({
							status: 1
						})
					}
				})
			}
		};
		h.exports = g
	}, {
		urlParam: 110
	}],
	110: [function(g, h, p) {
		h.exports = {
			genLocation: function(e) {
				e = e.split("&");
				var c = {};
				$.map(e, function(b) {
					b = b.split("=");
					if (b.length) {
						var a = b[0],
							f;
						try {
							f = decodeURIComponent(b.slice(1, b.length).join("="))
						} catch (d) {
							f = b.slice(1, b.length).join("=")
						}
						c[a] = f
					}
				});
				return c
			},
			query: function(e) {
				var c = this.genLocation(location.search.substr(1));
				return e ? c[e] : c
			},
			get: function(e) {
				var c = $.Cookie.get("vip_address") ? $.parseJSON(decodeURIComponent(escape($.Cookie
						.get("vip_address")))) : {},
					c = c.sid || c.did || c.cid || c.pid || "104104",
					c = {
						app_name: "shop_pc",
						app_version: "4.0",
						warehouse: $.Cookie.get("vip_wh") || "VIP_NH",
						fdc_area_id: c,
						client: "pc",
						mobile_platform: "1",
						province_id: $.Cookie.get("vip_province") || "104104",
						api_key: "70f71280d5d547b2a7bb370a529aeea1",
						user_id: $.Cookie.get("VipRUID"),
						mars_cid: $.Cookie.get("mars_cid") || "shop_pc",
						wap_consumer: UINFO.parseCookie().luc || "a"
					};
				return $.extend(c, e || {})
			}
		}
	}, {}],
	111: [function(g, h, p) {
		var e = {
			addressNameArr: ["province", "city", "country", "street"],
			isAreaSwitch: VIPSHOP.isAreaSwitch || 1,
			get: function(c) {
				var b = "",
					b = $.Cookie.get("vip_address"),
					a = $.Cookie.get("vip_province"),
					b = b && $.parseJSON(decodeURIComponent(escape(b)));
				if (c) {
					for (var f = 0, d = this.addressNameArr.slice(0, this.isAreaSwitch).length; f <
						d; f++)
						switch (f) {
							case 0:
								showId = b.pid;
								showName = b.pname;
								break;
							case 1:
								showId = b.cid;
								showName = b.cname;
								break;
							case 2:
								showId = b.did;
								showName = b.dname;
								break;
							case 3:
								showId = b.sid,
									showName = b.sname
						}
					b = 1 == c ? showId || a : showName
				}
				return b
			},
			set: function(c, b) {
				for (var a = "detail" == c ? this.addressNameArr : this.addressNameArr.slice(0, this
						.isAreaSwitch), f = {
						pid: "",
						pname: "",
						cid: "",
						cname: "",
						did: "",
						dname: "",
						sid: "",
						sname: ""
					}, d = 0, e = a.length; d < e; d++) {
					var l = a[d],
						k;
					"detail" == c ? (k = $("#J_tab_" + l + "_name"),
						l = k.html()) : (k = $("#J_header_tab_" + l),
						l = k.data("name"));
					k = k.data("id");
					switch (d) {
						case 0:
							f.pid = k;
							f.pname = l;
							break;
						case 1:
							f.cid = k;
							f.cname = l;
							break;
						case 2:
							f.did = k;
							f.dname = l;
							break;
						case 3:
							f.sid = l ? k : "",
								f.sname = l
					}
				}
				a = window.location.host && "www.vipglobal.hk" == window.location.host ?
					".vipglobal.hk" : ".vip.com";
				$.Cookie.set("vip_address", encodeURIComponent($.stringifyJSON(f)), a, "/", 17520);
				$.Cookie.set("vip_province", f.pid, a, "/", 17520);
				b && $.Cookie.set("vip_wh", b, a, "/", 17520);
				return f
			},
			getAreaId: function(c) {
				var b, a = $.Cookie.get("vip_address");
				$.Cookie.get("vip_province");
				var f = "",
					f = a && $.parseJSON(decodeURIComponent(escape(a)));
				switch (c) {
					case "province":
						b = f.pid;
						break;
					case "city":
						b = f.cid;
						break;
					case "country":
						b = f.did;
						break;
					case "street":
						b = f.sid
				}
				return b
			},
			getDetailAreaId: function() {
				var c = $.Storage.get("address_storage_infoV2"),
					b = e.get(1);
				if (c && c.length)
					for (var a = this.addressNameArr[this.isAreaSwitch - 1], f = 0, d = c
						.length; f < d; f++) {
						var n = c[f].tabAreaIds;
						if (n[a] == b) {
							b = n.street || n.country;
							break
						}
					}
				return b = b ? b : e.get(1)
			},
			getListAreaId: function() {
				var c = "",
					b = "",
					c = $.Cookie.get("vip_address"),
					a = $.Cookie.get("vip_province");
				(c = c && $.parseJSON(decodeURIComponent(escape(c)))) && (b = c.sid ? c.sid : c
					.did ? c.did : c.cid ? c.cid : c.pid);
				return b ? b : a
			}
		};
		h.exports = e
	}, {}],
	112: [function(g, h, p) {
		var e = g("../../../plugins/modules/http/httpV2.js"),
			c = g("../../../bo/address/nsArea.js");
		g = {
			url: {
				getPmsTipsApi: "//pmsgw.vip.com/1.0.2/jsonTips"
			},
			data: {
				userLevel: $.Cookie.get("VipMonopoly"),
				userId: $.Cookie.get("VipRUID"),
				warehouse: $.Cookie.get("vip_wh"),
				marsCid: $.Cookie.get("mars_cid"),
				customerSrc: VIPSHOP.Member.parseCookie().luc,
				testtt: 1
			},
			getPmsTips: function(b, a, f, d) {
				c.setArea({
					varKey: "globalAreaForPms",
					areaLevel: 4
				});
				var n = "";
				1 == f && (n = d);
				f = {
					warehouse: this.data.warehouse,
					platform: "1",
					salesNo: "",
					labels: {
						customerSrc: this.data.customerSrc,
						mobilePlatform: "PC",
						mobileChannel: "",
						customerLevel: ""
					},
					saleStartTime: n,
					merchandiseNo: "",
					spuId: "",
					areaId: $.Var.get("globalAreaForPms").areaId.toString() || "",
					userId: this.data.userId
				};
				f = $.extend(f, b);
				f.labels.customerLevel = "" == this.data.userLevel ? "" : "V" + this.data.userLevel;
				e({
					url: this.url.getPmsTipsApi,
					data: {
						jsonRequest: $.stringifyJSON(f)
					},
					jsonp: "callback",
					jsonpCallback: "getPmsTipsCB",
					dataType: "jsonp",
					cache: !0,
					timeout: 8E3,
					ajaxTryTimes: 1,
					code: "jsonTips_ajax_err",
					successCallback: function(b) {
						$.Listeners.pub("activetips.getData.success").success(b);
						(b.data.active && 0 < b.data.active.length || b.data.special &&
							b.data.special.msg) && a && a(b.data)
					},
					errorCallback: function() {
						$.Listeners.pub("vipPrice.getData.error").success()
					}
				})
			}
		};
		h.exports = g
	}, {
		"../../../bo/address/nsArea.js": 1,
		"../../../plugins/modules/http/httpV2.js": 96
	}],
	113: [function(g, h, p) {
		var e = g("../../../plugins/modules/http/httpV2.js"),
			c = g("../../../bo/address/nsArea.js");
		g = {
			url: {
				getNewPmsTipsApi: "//detail.vip.com/detail-ajax.php?act=getPmsInfo"
			},
			data: {
				userLevel: $.Cookie.get("VipMonopoly"),
				userId: $.Cookie.get("VipRUID"),
				warehouse: $.Cookie.get("vip_wh"),
				province_id: $.Cookie.get("vip_province"),
				customerSrc: VIPSHOP.Member.parseCookie().luc ? VIPSHOP.Member.parseCookie().luc
					.toUpperCase() : ""
			},
			getNewPmsTips: function(b, a, f, d) {
				c.setArea({
					varKey: "globalAreaForPms",
					areaLevel: 4
				});
				a = {
					is_old: "",
					areaId: $.Var.get("globalAreaForPms").areaId.toString() || "",
					warehouse: this.data.warehouse,
					brandId: "",
					province_id: this.data.province_id || "",
					products: [{
						productId: "",
						sizes: {
							skuId: "",
							sizeId: "",
							vipshopPrice: "",
							saleStyle: "",
							marketPrice: ""
						},
						spuId: "",
						categoryId: "",
						brandStoreSn: "",
						saleStyle: "",
						isMedicine: "",
						vipshopPriceSuff: "",
						isHaitao: "",
						minMarketPriceOfMinSkuVipshopPrice: "",
						minVipshopPrice: ""
					}],
					sellTimeFromIn: "",
					isStore: "",
					storeId: "",
					customerSrc: this.data.customerSrc,
					customerLevel: "",
					isHaitao: "",
					vendorSaleMessage: ""
				};
				a = $.extend(a, b);
				a.products = $.stringifyJSON(a.products);
				a.customerLevel = "" == this.data.userLevel ? "" : "V" + this.data.userLevel;
				e({
					type: "POST",
					url: this.url.getNewPmsTipsApi,
					data: a,
					jsonp: "callback",
					jsonpCallback: "getNewDetailPmsTipsCB",
					dataType: "json",
					cache: !0,
					timeout: 8E3,
					ajaxTryTimes: 1,
					successCallback: function(a) {
						a.data && $.Listeners.pub("newDetailPmsTips.getData.success")
							.success(a);
						a.data && a.data.tipsMap && $.Listeners.pub(
							"newActivetips.getData.success").success(a)
					},
					errorCallback: function() {
						$.Listeners.pub("vipPrice.getData.error").success()
					}
				})
			}
		};
		h.exports = g
	}, {
		"../../../bo/address/nsArea.js": 1,
		"../../../plugins/modules/http/httpV2.js": 96
	}],
	114: [function(g, h, p) {
		var e = g("../../../plugins/modules/http/httpV2.js"),
			c = g("../../../bo/address/nsArea.js");
		g = {
			url: {
				getPmsTipsApi: "//pmsgw.vip.com/1.0.2/jsonPromotionPriceAndTips"
			},
			data: {
				userLevel: $.Cookie.get("VipMonopoly"),
				userId: $.Cookie.get("VipRUID"),
				warehouse: $.Cookie.get("vip_wh"),
				customerSrc: VIPSHOP.Member.parseCookie().luc ? VIPSHOP.Member.parseCookie().luc
					.toUpperCase() : ""
			},
			getPmsTips: function(b, a, f, d) {
				c.setArea({
					varKey: "globalAreaForPms",
					areaLevel: 4
				});
				var n = "";
				1 == f && (n = d);
				f = {
					warehouse: this.data.warehouse,
					platform: "1",
					salesNo: "",
					labels: {
						customerSrc: this.data.customerSrc,
						mobilePlatform: "PC",
						mobileChannel: "",
						customerLevel: ""
					},
					saleStartTime: n,
					merchandiseMultiSizeList: [{
						merchandiseNo: "",
						sizeList: {
							skuId: "",
							mSizeId: "",
							price: ""
						}
					}],
					areaId: $.Var.get("globalAreaForPms").areaId.toString() || "",
					userId: this.data.userId
				};
				f = $.extend(f, b);
				f.labels.customerLevel = "" == this.data.userLevel ? "" : "V" + this.data.userLevel;
				e({
					url: this.url.getPmsTipsApi,
					data: {
						jsonRequest: $.stringifyJSON(f)
					},
					jsonp: "callback",
					jsonpCallback: "getDetailPmsTipsCB",
					dataType: "jsonp",
					cache: !0,
					timeout: 8E3,
					ajaxTryTimes: 1,
					code: "jsonPromotionPriceAndTips_ajax_err",
					successCallback: function(b) {
						b.data && $.Listeners.pub(
							"promotionPriceAndTips.getData.success").success(b);
						b.data && b.data.merchandiseSpecialActiveTipModel && (b = b.data
							.merchandiseSpecialActiveTipModel,
							$.Listeners.pub("activetips.getData.success").success({
								data: b
							}),
							a && a(b))
					},
					errorCallback: function() {
						$.Listeners.pub("vipPrice.getData.error").success()
					}
				})
			}
		};
		h.exports = g
	}, {
		"../../../bo/address/nsArea.js": 1,
		"../../../plugins/modules/http/httpV2.js": 96
	}],
	115: [function(g, h, p) {
		var e = g("../../../plugins/modules/checkLogin/globalLogin.js"),
			c = g("../../../plugins/modules/http/httpV2.js"),
			b = g("../../../plugins/modules/template");
		g = {
			ajaxIng: !1,
			userInfo: {
				coupons: {}
			},
			quanState: {
				marsSeadGot: "",
				marsSeadSoldOut: "",
				marsSeadNormal: "",
				classGot: "",
				classSoldOut: ""
			},
			init: function(a) {
				this.options = $.extend({
					marsPf: "coupons"
				}, a);
				this._init()
			},
			_init: function() {
				this.configVariable();
				this.inquiryCoupons();
				this.subEvent();
				this.bindEvent()
			},
			subEvent: function() {
				var a = this;
				$.Listeners.sub("leftSideCoupons.check.successState").onsuccess(function(b) {
					var d = $("#J_couponList");
					d.append($.Template({
						templateElement: $("#J-couponListTpl"),
						replace: null
					}).process({
						list: a.dataProcess(b.data)
					}));
					$("#J_list_qbar").show();
					$("#J-list-sider-pms-wrap").show();
					$("#J-list-sider-pms-wrap img.lazy").antiHijackingImage({
						pre_class: "lazy"
					});
					2 < d.find(".J-getCouponBtn").length && $("#J-sider-coupons-wrap")
						.addClass("list-coupons-limt");
					$.Cookie.get("VipLID") && (b = window,
						d = b.location.hash) && (d = VIPSHOP.queryStringToJSON(d.substr(
							1)),
						d.bid && d.cid && (b.location.hash = "couponBinded",
							$(["#J-CouponBtn", d.bid, d.cid].join("-")).trigger("click")
							))
				});
				$.Listeners.sub("leftSideCoupons.get.success").onsuccess(function(b) {
					var d = b.cid,
						c = b.bid,
						e = a.userInfo.coupons[d],
						k = "(",
						k = 5 == e.type && e.giveType && 1 == e.giveType ? k +
						"\u65e0\u95e8\u69db\uff0c\u591a\u4ef6\u591a\u51cf" : k + ("\u6ee1" +
							e.buy + "\u53ef\u7528");
					4 == b.couponField && (k +=
						"\uff0c\u4ec5\u9650\u8be5\u5546\u54c1\u4f7f\u7528");
					k += ")";
					a.popUpTips($("#J-couponSuccessTpl"), {
						couponInfo: [],
						isSingle: 4 == b.couponField ? ["1"] : [],
						tips: k,
						fav: e.fav,
						buy: e.buy,
						useTime: e.useTime ? {
							value: e.useTime
						} : [],
						isWarmup: a.options.isWarmUp ? ["1"] : []
					});
					a.received(d, c)
				});
				$.Listeners.sub("leftSideCoupons.get.before").onsuccess(function(b) {
					var d = b.cid;
					b = b.bid;
					var c = a.userInfo.coupons[d].fav,
						e = a.userInfo.coupons[d].buy;
					a.popUpTips($("#J-couponHadTpl"), {
						fav: c,
						buy: e,
						isWarmup: a.options.isWarmUp ? ["1"] : []
					});
					a.received(d, b)
				});
				$.Listeners.sub("leftSideCoupons.get.noleft").onsuccess(function(b) {
					var d = b.cid,
						c = b.bid,
						e = a.userInfo.coupons[d].fav,
						k =
						"\u7ea2\u5305\u5df2\u88ab\u9886\u5149\uff0c\u4e0b\u6b21\u8981\u65e9\u70b9\u6765\u54e6\uff01",
						g = a.userInfo.coupons[d].buy;
					b.msg && (k = b.msg);
					a.popUpTips($("#J-couponFinTpl"), {
						fav: e,
						buy: g,
						isWarmup: a.options.isWarmUp ? ["1"] : [],
						msg: k
					});
					a.receiveEnd(d, c)
				});
				$.Listeners.sub("leftSideCoupons.get.limit").onsuccess(function(b) {
					a.popUpTips($("#J-couponOverTpl"), {
						isLimit: [],
						isWarmup: a.options.isWarmUp ? ["1"] : []
					})
				});
				$.Listeners.sub("leftSideCoupons.get.fail").onsuccess(function(b) {
					a.popUpTips($("#J-couponFailTpl"), {
						bid: b.bid,
						cid: b.cid
					});
					a.timeO = setTimeout(function() {
						a.couponWins.close();
						a.couponWins.destroy()
					}, 3E3)
				})
			},
			inquiryCoupons: function() {
				var a = this,
					b, d, n = {
						bid: a.options.bids,
						mid: a.options.mid || ""
					};
				d = e.replaceApiKey("//myi.vip.com/coupon/getAll");
				d = e.auth(d, n, "myi.vip.com", "get", 0);
				c({
					url: d.url,
					data: d.param,
					dataType: "jsonp",
					jsonpCallback: "inquiryCouponsCB",
					timeout: 6E3,
					code: "coupon_get_all_error",
					successCallback: function(d) {
						1 == d.status && 0 < d.coupons.length && (b = a
							.processCouponData(d),
							a.renderCoupons(b))
					},
					errorCallback: function(a) {
						VIPSHOP.log("\u7ea2\u5305\u6570\u636e\u83b7\u53d6\u5931\u8d25")
					}
				})
			},
			processCouponData: function(a) {
				var b = [],
					d = {};
				a = a.coupons;
				for (var c = a.length, e = {}, k = this.quanState.marsSeadNormal, g = 0; g < c; g++)
					if (!$.isEmptyObject(a[g]) && (e = a[g],
							d = {},
							d.bid = this.options.bids,
							d.cid = e.couponId,
							d.fav = e.fav,
							d.buy = e.buy,
							d.marsSead = k,
							d.couponField = e.couponField || "",
							1 == e.status && 0 == e.left && (d.gotClass = this.quanState
								.classSoldOut,
								d.marsSead = this.quanState.marsSeadSoldOut),
							2 == e.status && (d.gotClass = this.quanState.classGot,
								d.marsSead = this.quanState.marsSeadGot),
							b.push(d),
							d = this.userInfo.coupons[e.couponId] = {},
							e.fav && (d.fav = e.fav),
							e.buy && (d.buy = e.buy),
							d.type = e.type ? e.type : "",
							d.giveType = e.giveType ? e.giveType : "",
							"1" == e.useType && e.useBegin && e.useEnd)) {
						var m = this._getUseTime(e.useBegin),
							e = this._getUseTime(e.useEnd);
						d.useTime = m + " ~ " + e
					}
				return b
			},
			_getUseTime: function(a) {
				var b = new Date(1E3 * a);
				a = b.getFullYear();
				var d = b.getMonth() + 1,
					d = 10 > d ? "0" + d : d,
					b = b.getDate();
				return a + "-" + d + "-" + b
			},
			renderCoupons: function(a) {
				var c = $("#J_couponList"),
					d = "";
				if (!$("#J-coupon-list-tpl").length)
					return !1;
				d = b("J-coupon-list-tpl", {
					couponList: a
				});
				c.append(d);
				$("#J_list_qbar").show();
				$("#J-list-sider-pms-wrap").show();
				$("#J-list-sider-pms-wrap img.lazy").antiHijackingImage({
					pre_class: "lazy"
				});
				2 < c.find(".J-getCouponBtn").length && $("#J-sider-coupons-wrap").addClass(
					"list-coupons-limt");
				$.Listeners.pub("render.coupons.complete").success({
					couponList: a
				});
				$.Cookie.get("VipLID") && (a = window,
					c = a.location.hash) && (c = VIPSHOP.queryStringToJSON(c.substr(1)),
					c.bid && c.cid && (a.location.hash = "couponBinded",
						$(["#J-CouponBtn", c.bid, c.cid].join("-")).trigger("click")))
			},
			dataProcess: function(a) {
				if (a && a.length) {
					for (var b = this.quanState.marsSeadNormal, d = 0, c = a.length; d < c; d++) {
						var e = "",
							k = a[d].couponId,
							g = a[d].fav,
							m = a[d].buy,
							q = a[d].bind;
						a[d].data = [];
						1 == a[d].status && 0 == a[d].left && (e = this.quanState.classSoldOut,
							b = this.quanState.marsSeadSoldOut);
						2 == a[d].status && (e = this.quanState.classGot,
							b = this.quanState.marsSeadGot);
						a[d].bid = this.options.bids;
						a[d].cid = k;
						a[d].marsSead = b;
						a[d].got = e;
						a[d].data.push({
							fav: g
						});
						this.userInfo.coupons[k] = {};
						g && (this.userInfo.coupons[k].fav = g);
						m && (this.userInfo.coupons[k].buy = m);
						q && (this.userInfo.coupons[k].bind = q)
					}
					return a
				}
			},
			bindCouponAjax: function(a, b, d) {
				var n = this,
					l = "//myi.vip.com/coupon/bind",
					g = {
						bid: a,
						cid: b,
						mid: n.options.mid || "",
						couponField: d
					};
				e.isHk() && (g.whereFrom = "global");
				l = e.replaceApiKey(l);
				l = e.auth(l, g, "myi.vip.com", "get", 0);
				c({
					url: l.url,
					data: l.param,
					dataType: "jsonp",
					jsonpCallback: "bindCouponCB",
					timeout: 6E3,
					code: "coupon_bind_error",
					successCallback: function(c) {
						switch (c.status) {
							case 1:
								$.Listeners.pub("leftSideCoupons.get.success").success({
									cid: b,
									bid: a,
									couponField: d
								});
								break;
							case 2:
								c = c.data[b].bindStatus;
								200 == c ? $.Listeners.pub(
										"leftSideCoupons.get.success").success({
										cid: b,
										bid: a,
										couponField: d
									}) : 1011 == c ? $.Listeners.pub(
										"leftSideCoupons.get.before").success({
										cid: b,
										bid: a
									}) : 1012 == c ? $.Listeners.pub(
										"leftSideCoupons.get.noleft").success({
										cid: b,
										bid: a
									}) : 1071 == c ? $.Listeners.pub(
										"leftSideCoupons.get.limit").success({
										cid: b,
										bid: a
									}) : 3001 == c ? $.Listeners.pub(
										"leftSideCoupons.get.noleft").success({
										cid: b,
										bid: a,
										msg: "\u5f88\u62b1\u6b49\uff0c\u5238\u5df2\u9886\u5b8c\u301001\u3011"
									}) : $.Listeners.pub("leftSideCoupons.get.fail")
									.success({
										cid: b,
										bid: a
									});
								break;
							case 503:
								$.Listeners.pub("leftSideCoupons.get.noleft").success({
									cid: b,
									bid: a,
									msg: "\u5f88\u62b1\u6b49\uff0c\u5238\u5df2\u9886\u5b8c\u301001\u3011"
								});
								break;
							case 504:
								$.Listeners.pub("leftSideCoupons.get.noleft").success({
									cid: b,
									bid: a,
									msg: "\u670d\u52a1\u5668\u5f00\u5c0f\u5dee\u4e86\uff0c\u8bf7\u5237\u65b0\u91cd\u8bd5"
								});
								break;
							default:
								$.Listeners.pub("leftSideCoupons.get.fail").success({
									cid: b,
									bid: a
								})
						}
						n.ajaxIng = !1
					},
					errorCallback: function(d) {
						$.Listeners.pub("leftSideCoupons.get.fail").success({
							cid: b,
							bid: a
						});
						n.ajaxIng = !1
					}
				})
			},
			popUpTips: function(a, b) {
				var d = $.Template({
					templateElement: a,
					replace: null
				}).process(b);
				this.couponWins = $.Dialog({
					size: [410],
					content: d,
					zIndex: 1E3,
					custom: !0,
					customStyle: !1,
					model: !0,
					opacity: 0.5
				}).open()
			},
			received: function(a, b) {
				$(["#J-CouponBtn", b, a].join("-")).attr("mars_sead", this.quanState.marsSeadGot)
					.addClass(this.quanState.classGot)
			},
			receiveEnd: function(a, b) {
				$(["#J-CouponBtn", b, a].join("-")).attr("mars_sead", this.quanState
					.marsSeadSoldOut).addClass(this.quanState.classSoldOut)
			},
			configVariable: function() {
				this.quanState.marsSeadGot = this.options.marsPf + "_coupons_gotten";
				this.quanState.marsSeadSoldOut = this.options.marsPf + "_coupons_clearout";
				this.quanState.marsSeadNormal = this.options.marsPf + "_coupons_normal";
				this.quanState.classGot = "J-disable sider-coupons-item-has";
				this.quanState.classSoldOut = "J-disable sider-coupons-item-soldout"
			},
			setPosition: {
				pms_wrap: "",
				header_wrap: $("#vip-common-header"),
				set_top_count: "",
				set: function() {
					var a = this;
					if (1 > a.pms_wrap.length)
						return !1;
					var a = this,
						b = "",
						d = a.header_wrap.height() + a.header_wrap.offset().top + 16;
					a.pms_wrap = a.pms_wrap ? a.pms_wrap : $("#J-list-sider-pms-wrap");
					if (1 > a.pms_wrap.length)
						return !1;
					b = a.pms_wrap.offset().top <= d ? d - $(window).scrollTop() : 64;
					b != a.set_top_count && a.pms_wrap.animate({
						top: b
					}, {
						duration: 300,
						queue: !1,
						complete: function() {
							a.set_top_count = b
						}
					})
				}
			},
			bindEvent: function() {
				var a = this;
				$(window).on("scroll", VIPSHOP.Throttle(function() {
					a.setPosition.set()
				}, 200));
				a.setPosition.set();
				$(document).delegate(".J-getCouponBtn", "click", function() {
					var b = $(this);
					if (!b.hasClass("J-disable"))
						if ($.Cookie.get("VipLID")) {
							var d = b.data("info").split("-"),
								c = d[0],
								d = d[1];
							a.ajaxIng || (a.ajaxIng = !0,
								a.bindCouponAjax(c, d, b.data("coupon")))
						} else
							e.redirect(),
							VIPSHOP.login.init({
								loginEvent: function() {
									var a = window.location,
										d = b.data("info").split("-");
									a.hash = ["bid=" + d[0], "cid=" + d[1]].join(
										"&");
									a.reload()
								}
							})
				});
				$(document).delegate("#J-coupopMore", "click", function() {
					var a = $("#J-sider-coupons-wrap");
					a.hasClass("list-coupons-limt") ? ($("#J_list_qbar").height($(
							"#J_couponList").outerHeight()),
						a.removeClass("list-coupons-limt").addClass(
							"list-coupons-limt-unfold")) : ($("#J_list_qbar").height(
						70),
						a.removeClass("list-coupons-limt-unfold").addClass(
							"list-coupons-limt"))
				});
				$(document).delegate(".J-closeBtn", "click", function() {
					clearTimeout(a.timeO);
					a.couponWins.close();
					a.couponWins.destroy()
				});
				$(document).delegate(".J-retryBtn", "click", function() {
					var b = $(this).data("info").split("-");
					a.bindCouponAjax(b[0], b[1], $this.data("coupon"));
					clearTimeout(a.timeO);
					a.couponWins.close();
					a.couponWins.destroy()
				})
			}
		};
		h.exports = g
	}, {
		"../../../plugins/modules/checkLogin/globalLogin.js": 94,
		"../../../plugins/modules/http/httpV2.js": 96,
		"../../../plugins/modules/template": 100
	}],
	116: [function(g, h, p) {
		g = {
			model: g("./model"),
			view: g("./view"),
			init: function(e) {
				this.model.init(e);
				this.view.init(e)
			}
		};
		h.exports = g
	}, {
		"./model": 117,
		"./view": 118
	}],
	117: [function(g, h, p) {
		var e = g("../../../../plugins/modules/http/httpV2.js"),
			c = g("../../../../plugins/modules/checkLogin/globalLogin.js");
		h.exports = {
			api: {
				check: "//mapi.vip.com/vips-mobile/rest/fav/pc/goods/status",
				add: "//mapi.vip.com/vips-mobile/rest/fav/pc/goods/add_by_mid",
				favDelete: "//mapi.vip.com/vips-mobile/rest/fav/pc/goods/batch/delete_by_mid_v2",
				count: "//myi.vip.com/fav_sku/goods/count"
			},
			data: {
				loginSuccessSwitch: 1,
				moduleHasInit: 0,
				hasCheckFav: 0,
				skuList: [],
				currentSku: null,
				warehouse: null,
				brandId: null,
				goodsId: null,
				skuFavState: !1,
				areaId: "",
				sizeId: ""
			},
			event: {
				sub: {
					loginSuccess: "loginSuccess",
					detailSkuStock: "detail.goods.stock",
					addSkuFav: "add.sku.fav",
					deleteSkuFav: "delete.sku.fav",
					goodsSizeSelectedId: "choose.size.success"
				},
				pub: {
					goodsFavInitSuccess: "goods.fav.init.success",
					addSkuFavSuccess: "add.sku.fav.success",
					addSkuFavError: "add.sku.fav.error",
					deleteSkuFavSuccess: "delete.sku.fav.success",
					deleteSkuFavError: "delete.sku.fav.error",
					updateCurrentSkuState: "update.current.sku.state",
					currentSkuSelected: "current.sku.selected",
					currentSkuUnselected: "current.sku.unselected"
				}
			},
			init: function(b) {
				var a = this;
				this.data.skuList = b.skuList;
				this.data.currentSku = b.currentSku;
				this.data.warehouse = b.warehouse;
				this.data.brandId = b.brandId;
				this.data.goodsId = b.goodsId;
				this.getAddress();
				$.Listeners.sub(this.event.sub.loginSuccess).onsuccess(function() {
					a.data.loginSuccessSwitch && (a.checkFav(),
						a.data.loginSuccessSwitch = 0)
				});
				this.bindCustomEvent()
			},
			bindCustomEvent: function() {
				var b = this;
				$.Listeners.sub(b.event.sub.goodsSizeSelectedId).onsuccess(function(a) {
					b.data.sizeId = a.sizeId
				});
				$.Listeners.sub(this.event.sub.detailSkuStock).onsuccess(function(a) {
					b.checkStock(a.items)
				});
				$.Listeners.sub("stock_merchandise").onsuccess(function(a) {
					b.checkStock(a && a.data[0].sizes)
				});
				$.Listeners.sub("detail.beauty.goods.stock").onsuccess(function(a) {
					b.checkStock(a && a.items)
				});
				$.Listeners.sub(this.event.sub.addSkuFav).onsuccess(function(a) {
					b.add(a)
				});
				$.Listeners.sub(this.event.sub.deleteSkuFav).onsuccess(function(a) {
					b.removeFav(a)
				})
			},
			getAddress: function() {
				var b = $.Cookie.get("vip_address") && $.parseJSON(decodeURIComponent(escape($
					.Cookie.get("vip_address"))));
				this.data.areaId = b.sid ? b.sid : b.did ? b.did : b.cid ? b.cid : b.pid || "104104"
			},
			checkStock: function(b) {
				var a;
				for (a = 0; a < b.length; a++)
					1 != this.data.moduleHasInit && 0 == b[a].type && (this.data.moduleHasInit = 1,
						$.Listeners.pub(this.event.pub.goodsFavInitSuccess).success())
			},
			checkFav: function() {
				var b = this,
					a = {
						app_name: "shop_pc",
						app_version: "4.0",
						mars_cid: $.Cookie.get("mars_cid"),
						api_key: "70f71280d5d547b2a7bb370a529aeea1",
						warehouse: $.Cookie.get("vip_wh"),
						province_id: $.Cookie.get("vip_province"),
						source_app: "pc",
						mobile_platform: "1",
						fdc_area_id: b.data.areaId,
						mids: b.data.goodsId
					},
					a = c.replaceApiKey(a),
					a = c.auth(b.api.check, a, "mapi.vip.com", "get", 0);
				e({
					url: a.url,
					data: a.param,
					dataType: "jsonp",
					jsonpCallback: "checkFavGoods",
					cache: !0,
					successCallback: function(a) {
						1 == a.code && a.data && (b.data.skuFavState = a.data.midMap ? a
							.data.midMap[b.data.goodsId] : !1,
							b.data.skuFavState && $.Listeners.pub(b.event.pub
								.updateCurrentSkuState).success({
								data: 1
							}),
							b.data.hasCheckFav = 1)
					},
					errorCallback: function() {
						VIPSHOP.log("\u67e5\u8be2\u5546\u54c1\u6536\u85cf\u5931\u8d25")
					}
				})
			},
			add: function(b) {
				var a = this;
				b = {
					app_name: "shop_pc",
					app_version: "4.0",
					mars_cid: $.Cookie.get("mars_cid"),
					api_key: "70f71280d5d547b2a7bb370a529aeea1",
					warehouse: $.Cookie.get("vip_wh"),
					province_id: $.Cookie.get("vip_province"),
					source_app: "pc",
					channel: "PC",
					mobile_platform: "1",
					fdc_area_id: a.data.areaId,
					mid: b.goodsId
				};
				this.data.sizeId && (b.sizeId = this.data.sizeId);
				b = c.replaceApiKey(b);
				b = c.auth(a.api.add, b, "mapi.vip.com", "get", 0);
				e({
					url: b.url,
					data: b.param,
					dataType: "jsonp",
					jsonpCallback: "addFavGoods",
					cache: !0,
					successCallback: function(b) {
						1 == b.code ? (a.data.hasCheckFav && (a.data.skuFavState = !0),
								$.Listeners.pub(a.event.pub.addSkuFavSuccess).success()
								) : $.Listeners.pub(a.event.pub.addSkuFavError)
						.success({
								code: b.code,
								title: "\u52a0\u5165\u6536\u85cf\u5931\u8d25\uff01",
								msg: b.msg ||
									"\u53ef\u80fd\u7f51\u7edc\u5f00\u5c0f\u5dee\u4e86\uff0c\u8bf7\u7a0d\u540e\u518d\u8bd5\u8bd5\u5427\uff01"
							})
					},
					errorCallback: function() {
						$.Listeners.pub(a.event.pub.addSkuFavError).success({
							code: 408,
							title: "\u52a0\u5165\u6536\u85cf\u5931\u8d25\uff01",
							msg: "\u63a5\u53e3\u8bf7\u6c42\u8d85\u65f6"
						})
					}
				})
			},
			removeFav: function(b) {
				var a = this,
					f = {
						app_name: "shop_pc",
						app_version: "4.0",
						mars_cid: $.Cookie.get("mars_cid"),
						api_key: "70f71280d5d547b2a7bb370a529aeea1",
						warehouse: $.Cookie.get("vip_wh"),
						province_id: $.Cookie.get("vip_province"),
						source_app: "pc",
						mobile_platform: "1",
						fdc_area_id: a.data.areaId,
						mids: b.sku
					},
					f = c.replaceApiKey(f),
					f = c.auth(a.api.favDelete, f, "mapi.vip.com", "get", 0);
				e({
					url: f.url,
					data: f.param,
					dataType: "jsonp",
					jsonpCallback: "delFavGoods",
					cache: !0,
					successCallback: function(d) {
						if (1 == d.code && d.data) {
							a.data.hasCheckFav && (a.data.skuFavState = !1);
							var c = d.data.midList ? d.data.midList : [];
							0 == c.length ? $.Listeners.pub(a.event.pub
									.deleteSkuFavSuccess).success() : c[0] == b.sku && $
								.Listeners.pub(a.event.pub.deleteSkuFavError).success({
									code: d.code,
									data: d.data,
									title: "\u53d6\u6d88\u6536\u85cf\u5931\u8d25\uff01",
									msg: d.msg ||
										"\u53ef\u80fd\u7f51\u7edc\u5f00\u5c0f\u5dee\u4e86\uff0c\u8bf7\u7a0d\u540e\u518d\u8bd5\u8bd5\u5427\uff01"
								})
						} else
							$.Listeners.pub(a.event.pub.deleteSkuFavError).success({
								code: d.code,
								data: d.data,
								title: "\u53d6\u6d88\u6536\u85cf\u5931\u8d25\uff01",
								msg: d.msg ||
									"\u53ef\u80fd\u7f51\u7edc\u5f00\u5c0f\u5dee\u4e86\uff0c\u8bf7\u7a0d\u540e\u518d\u8bd5\u8bd5\u5427\uff01"
							})
					},
					errorCallback: function() {
						$.Listeners.pub(a.event.pub.deleteSkuFavError).success({
							code: 408,
							title: "\u63a5\u53e3\u8bf7\u6c42\u8d85\u65f6",
							msg: "\u53ef\u80fd\u7f51\u7edc\u5f00\u5c0f\u5dee\u4e86\uff0c\u8bf7\u7a0d\u540e\u518d\u8bd5\u8bd5\u5427\uff01"
						})
					}
				})
			}
		}
	}, {
		"../../../../plugins/modules/checkLogin/globalLogin.js": 94,
		"../../../../plugins/modules/http/httpV2.js": 96
	}],
	118: [function(g, h, p) {
		var e = g("../../../../plugins/modules/checkLogin/globalLogin.js");
		h.exports = {
			ui: {
				goodsSizeWrapper: "#J-sizeArea-wrap",
				addFavWrapper: "#J_add_fav_wrapper",
				banStatusAddWrapper: "#J_add_fav_wrapper_banStatus",
				addFavButton: "#J_add_fav_button",
				banStatusAddFav: "#J_add_fav_button_banStatus",
				banStatusDeleteFav: "#J_remove_fav_button_banStatus",
				deleteFavButton: "#J_remove_fav_button",
				addFavErrorCountdownSecond: "#J_add_fav_error_countdown_sec"
			},
			states: {
				hidden: "f-hide",
				goodsSizeWarning: "status-notice",
				addFavWrapperSelected: "z-fav-collected",
				addFavDialogUnselected: "z-size-no-select"
			},
			tmpl: {
				favActionErrorDialog: "J_add_fav_error_tmpl"
			},
			data: {
				sidebarHasInit: 0,
				warehouse: null,
				brandId: null,
				goodsId: null,
				currentSku: null,
				addLock: 0,
				deleteLock: 0,
				loginSuccessCallbackSwitch: 1
			},
			event: {
				sub: {
					sidebarHasInit: "sidebar.loaded",
					detailGoodsStock: "detail.goods.stock",
					goodsFavInitSuccess: "goods.fav.init.success",
					addSkuFavSuccess: "add.sku.fav.success",
					addSkuFavError: "add.sku.fav.error",
					deleteSkuFavSuccess: "delete.sku.fav.success",
					deleteSkuFavError: "delete.sku.fav.error",
					goodsSizeSelectedId: "choose.size.success",
					updateCurrentSkuState: "update.current.sku.state"
				},
				pub: {
					sidebarFlyFav: "sidebar.fly.myFav",
					addSkuFav: "add.sku.fav",
					deleteSkuFav: "delete.sku.fav",
					selectSkuFav: "select.sku.fav"
				}
			},
			init: function(c) {
				this.data.warehouse = c.warehouse;
				this.data.brandId = c.brandId;
				this.data.goodsId = c.goodsId;
				this.data.currentSku = c.currentSku;
				this.bindEvent();
				this.bindCustomEvent()
			},
			bindEvent: function() {
				var c = this;
				$(document).on("click", this.ui.addFavButton, function() {
					c.checkLogin(function() {
						c.addFav()
					})
				});
				$(document).on("click", this.ui.banStatusAddFav, function() {
					c.checkLogin(function() {
						c.addFav()
					})
				});
				$(document).on("click", this.ui.banStatusDeleteFav, function() {
					c.checkLogin(function() {
						c.deleteFav()
					})
				});
				$(document).on("click", this.ui.deleteFavButton, function() {
					c.checkLogin(function() {
						c.deleteFav()
					})
				})
			},
			bindCustomEvent: function() {
				var c = this;
				$.Listeners.sub(this.event.sub.goodsFavInitSuccess).onsuccess(function() {
					$(c.ui.addFavWrapper).removeClass(c.states.hidden)
				});
				$.Listeners.sub(this.event.sub.sidebarHasInit).onsuccess(function() {
					c.data.sidebarHasInit = 1
				});
				$.Listeners.sub(c.event.sub.goodsSizeSelectedId).onsuccess(function(b) {
					c.data.currentSku = b.sizeId
				});
				$.Listeners.sub(this.event.sub.addSkuFavSuccess).onsuccess(function() {
					c.updateFavActionState("add");
					c.data.sidebarHasInit && c.animate();
					c.data.addLock = 0
				});
				$.Listeners.sub(this.event.sub.addSkuFavError).onsuccess(function(b) {
					var a = b.msg;
					201 == b.code ? (c.errorDialog({
							title: a
						}),
						c.updateFavActionState("selected")) : c.errorDialog({
						title: b.title,
						content: a
					});
					c.countDown(c.ui.addFavErrorCountdownSecond, 3, function() {
						c.favActionErrorDialog.close()
					});
					c.data.addLock = 0
				});
				$.Listeners.sub(this.event.sub.updateCurrentSkuState).onsuccess(function(b) {
					b.data ? c.updateFavActionState("add") : c.updateFavActionState(
						"delete")
				});
				$.Listeners.sub(this.event.sub.deleteSkuFavSuccess).onsuccess(function() {
					c.updateFavActionState("delete");
					c.data.deleteLock = 0
				});
				$.Listeners.sub(this.event.sub.deleteSkuFavError).onsuccess(function(b) {
					0 == b.data && c.updateFavActionState("unselected");
					c.errorDialog({
						title: b.title,
						content: b.msg
					});
					c.countDown(c.ui.addFavErrorCountdownSecond, 3, function() {
						c.favActionErrorDialog.close()
					});
					c.data.deleteLock = 0
				})
			},
			checkLogin: function(c, b) {
				var a = this;
				$.Cookie.get("VipLID") ? c() : (e.redirect(),
					VIPSHOP.login.init({
						loginEvent: function() {
							VIPSHOP.member.chk();
							a.data.loginSuccessCallbackSwitch && (c(),
								a.data.hasLoginSuccessCallback = 0)
						},
						closeEvent: function() {
							b && b()
						}
					}))
			},
			addFav: function() {
				this.data.addLock || ($.Listeners.pub(this.event.pub.addSkuFav).success({
						warehouse: this.data.warehouse,
						brandId: this.data.brandId,
						goodsId: this.data.goodsId,
						sku: this.data.currentSku
					}),
					this.data.addLock = 1)
			},
			deleteFav: function() {
				this.data.deleteLock || ($.Listeners.pub(this.event.pub.deleteSkuFav).success({
						warehouse: this.data.warehouse,
						sku: this.data.goodsId
					}),
					this.data.deleteLock = 1)
			},
			updateFavActionState: function(c) {
				var b = $(this.ui.addFavWrapper),
					a = $(this.ui.banStatusAddWrapper);
				"add" == c ? (b.addClass(this.states.addFavWrapperSelected),
					a.addClass(this.states.addFavWrapperSelected)) : "delete" == c && (b
					.removeClass(this.states.addFavWrapperSelected),
					a.removeClass(this.states.addFavWrapperSelected))
			},
			errorDialog: function(c) {
				var b = [];
				b.push($.Tpl(this.tmpl.favActionErrorDialog, {
					title: c.title,
					content: c.content
				}));
				this.favActionErrorDialog = $.Dialog({
					model: !0,
					content: b,
					size: "small",
					autoResize: !0,
					closeEvent: function() {
						this.destroy()
					}
				}).open()
			},
			animate: function() {
				$.Listeners.pub(this.event.pub.sidebarFlyFav).success({
					target: $(this.ui.addFavWrapper)
				})
			},
			countDown: function(c, b, a) {
				var e = this;
				0 == b && a ? a() : (setTimeout(function() {
						e.countDown(c, --b, a)
					}, 1E3),
					$(c).text(b))
			}
		}
	}, {
		"../../../../plugins/modules/checkLogin/globalLogin.js": 94
	}],
	119: [function(g, h, p) {
		var e = g("../shop/modules/commonPms/commonPms.js"),
			c = g("../shop/modules/commonPms/detailPms.js"),
			b = g("../shop/modules/commonPms/detailNewPms.js");
		h.exports = {
			getPmsTips: function(a, b, d, c) {
				e.getPmsTips(a, b, d, c)
			},
			detailPms: function(a, b, d, e) {
				c.getPmsTips(a, b, d, e)
			},
			detailNewPms: function(a, c, d, e) {
				b.getNewPmsTips(a, c, d, e)
			}
		}
	}, {
		"../shop/modules/commonPms/commonPms.js": 112,
		"../shop/modules/commonPms/detailNewPms.js": 113,
		"../shop/modules/commonPms/detailPms.js": 114
	}],
	120: [function(g, h, p) {
		h.exports = {
			init: function() {
				$(document).delegate("#J-list-sider-pms-wrap .J-list-sider-pms-min", "click",
					function() {
						$("#J-list-sider-pms-wrap").addClass("w-less1200 trans-switch")
					}).delegate("#J-list-sider-pms-wrap .J-list-sider-pms-close", "click",
					function() {
						$("#J-list-sider-pms-wrap").removeClass("w-less1200 trans-switch")
					});
				document.all && !document.addEventListener && $(window).on("resize.coupon",
					function() {
						1200 > $(window).width() ? $("body").addClass("ms-w1200lessthan") : $(
							"body").removeClass("ms-w1200lessthan")
					}).trigger("resize.coupon")
			}
		}
	}, {}],
	121: [function(g, h, p) {
		var e = g("../plugins/modules/http/httpV2.js");
		h.exports = {
			stockListApi: "//stock.vip.com/list/",
			getStock: function(c) {
				c.paramData.mids = $.isArray(c.paramData.mids) && c.paramData.mids.join(",");
				e({
					url: this.stockListApi,
					data: c.paramData,
					dataType: "jsonp",
					jsonpCallback: c.jsonpCallback,
					timeout: 6E3,
					code: c.code,
					successCallback: function(b) {
						c.cb && c.cb(b)
					}
				})
			}
		}
	}, {
		"../plugins/modules/http/httpV2.js": 96
	}],
	122: [function(g, h, p) {
		! function(e, c) {
			"object" == typeof p && "object" == typeof h ? h.exports = c() : "function" == typeof define &&
				define.amd ? define([], c) : "object" == typeof p ? p.MarsTracker = c() : e.MarsTracker =
				c()
		}(window, function() {
			function e(a) {
				if (b[a])
					return b[a].exports;
				var f = b[a] = {
					i: a,
					l: !1,
					exports: {}
				};
				return c[a].call(f.exports, f, f.exports, e),
					f.l = !0,
					f.exports
			}
			return (b = {},
				e.m = c = [function(a, b) {
					var d = a.exports = {
						version: "2.5.7"
					};
					"number" == typeof __e && (__e = d)
				}, function(a, b) {
					var d = a.exports = "undefined" != typeof window && window.Math == Math ?
						window : "undefined" != typeof self && self.Math == Math ? self :
						Function("return this")();
					"number" == typeof __g && (__g = d)
				}, function(a, b, d) {
					var c = d(37)("wks"),
						e = d(24),
						g = d(1).Symbol,
						t = "function" == typeof g;
					(a.exports = function(a) {
						return c[a] || (c[a] = t && g[a] || (t ? g : e)("Symbol." + a))
					}).store = c
				}, function(a, b, d) {
					var c = d(5);
					a.exports = function(a) {
						if (!c(a))
							throw TypeError(a + " is not an object!");
						return a
					}
				}, function(a, b, d) {
					var c = d(1),
						e = d(0),
						g = d(20),
						t = d(10),
						m = d(7),
						q = function(a, b, d) {
							var f, h, p, z = a & q.F,
								x = a & q.G,
								w = a & q.S,
								y = a & q.P,
								D = a & q.B,
								H = a & q.W,
								J = x ? e : e[b] || (e[b] = {}),
								F = J.prototype,
								w = x ? c : w ? c[b] : (c[b] || {}).prototype;
							for (f in x && (d = b),
								d)
								(h = !z && w && void 0 !== w[f]) && m(J, f) || (p = h ? w[f] :
									d[f],
									J[f] = x && "function" != typeof w[f] ? d[f] : D && h ? g(p,
										c) : H && w[f] == p ? function(a) {
										function b(d, c, e) {
											if (this instanceof a) {
												switch (arguments.length) {
													case 0:
														return new a;
													case 1:
														return new a(d);
													case 2:
														return new a(d, c)
												}
												return new a(d, c, e)
											}
											return a.apply(this, arguments)
										}
										return b.prototype = a.prototype,
											b
									}(p) : y && "function" == typeof p ? g(Function.call, p) :
									p,
									y && ((J.virtual || (J.virtual = {}))[f] = p,
										a & q.R && F && !F[f] && t(F, f, p)))
						};
					q.F = 1;
					q.G = 2;
					q.S = 4;
					q.P = 8;
					q.B = 16;
					q.W = 32;
					q.U = 64;
					q.R = 128;
					a.exports = q
				}, function(a, b) {
					a.exports = function(a) {
						return "object" == typeof a ? null !== a : "function" == typeof a
					}
				}, function(a, b, d) {
					function c(a) {
						return a && a.__esModule ? a : {
							"default": a
						}
					}
					b.__esModule = !0;
					b.closest = b.generateCid = b.generateRand = b.parseVipuinfo = b
						.setSessionNo = b.isNumber = b.isArray = b.isObject = b.isString = b
						.isFunction = b.isPlainObject = b.Debounce = void 0;
					var e = c(d(16)),
						g = c(d(33));
					b.json2Object = function(a) {
						if ("string" == typeof a)
							try {
								return JSON.parse(a)
							} catch (b) {
								return console.warn("error\uff1a" + a + "!!!" + b),
									!1
							}
					};
					b.json2String = function(a) {
						if ("object" === (void 0 === a ? "undefined" : (0,
								g["default"])(a)))
							try {
								return (0,
									e["default"])(a)
							} catch (b) {
								return console.warn("error\uff1a" + a + "!!!" + b),
									!1
							}
					};
					b.getSysteminfo = function() {
						var a = window.navigator.userAgent.toLocaleLowerCase(),
							b = a.substring(a.indexOf("(") + 1, a.indexOf(")")).split(";"),
							d = " u" === b[1] ? b[2] : b[1],
							c = "unknow",
							e = "else";
						/iphone|ipad|ipod/.test(a) ? (c = "apple",
								e = "iphone") : c = /gt-|sm-|sch-/.test(a) ? "samsung" :
							/huawei|honor/.test(a) ? "huawei" : /hm|redmi|mi/.test(a) ?
							"xiaomi" : /vivo/.test(a) ? "vivo" : /oppo/.test(a) ? "oppo" :
							/one/.test(a) ? "onePlus" : /lenovo/.test(a) ? "lenovo" : /zte/
							.test(a) ? "zte" : /htc/.test(a) ? "htc" : /playbook|bb10/.test(
								a) ? "blackberry" : "else";
						return {
							factory: c,
							model: e,
							os: d,
							clientType: b[0]
						}
					};
					b.addEvent = function(a, b, d) {
						a.attachEvent ? a.attachEvent("on" + b, d) : a.addEventListener(b,
							d, !1)
					};
					var t = c(d(21));
					b.Debounce = function(a, b, d) {
						var c, e, f, l, g, n = Date.now || function() {
								return (new Date).getTime()
							},
							k = function D() {
								var k = n() - l;
								k < b && 0 <= k ? c = setTimeout(D, b - k) : (c = null,
									d || (g = a.apply(f, e),
										c || (f = e = null)))
							};
						return function() {
							f = this;
							e = arguments;
							l = n();
							var m = d && !c;
							return c = c || setTimeout(k, b),
								m && (g = a.apply(f, e),
									f = e = null),
								g
						}
					};
					b.isPlainObject = function(a) {
						var b = [].toString,
							d = Object.prototype.hasOwnProperty,
							c = {
								"[object Boolean]": "bool",
								"[object Number]": "number",
								"[object String]": "string",
								"[object Object]": "object",
								"[object Array]": "array",
								"[object Function]": "function",
								"[object Date]": "date",
								"[object RegExp]": "regExp"
							};
						Array.isArray;
						if (!a || "object" !== (null === a ? String(a) : c[b.call(a)] ||
								"object") || a && "object" === (void 0 === a ? "undefined" :
								(0,
									g["default"])(a)) && "setInterval" in a || a.nodeType)
							return !1;
						try {
							if (a.constructor && !d.call(a, "constructor") && !d.call(a
									.constructor.prototype, "isPrototypeOf"))
								return !1
						} catch (e) {
							return !1
						}
						b = void 0;
						for (b in a)
						;
						return void 0 === b || d.call(a, b)
					};
					a = function() {
						for (var a = {}, b =
								"String Object Number Array Undefined Function Null Symbol"
								.split(" "), d = 0; d < b.length; d++)
							! function(b) {
								a["Is" + b] = function(a) {
									return Object.prototype.toString.call(a) ==
										"[object " + b + "]"
								}
							}(b[d]);
						return a
					}();
					b.isFunction = a.IsFunction;
					b.isString = a.IsString;
					b.isObject = a.IsObject;
					b.isArray = a.IsArray;
					b.isNumber = a.IsNumber;
					b.setSessionNo = function() {
						var a = ~~t["default"].get("pg_session_no");
						return a ? a += 1 : a = 1,
							t["default"].set("pg_session_no", a),
							a
					};
					b.parseVipuinfo = function() {
						var a = t["default"].get("VipUINFO");
						if (!a)
							return "";
						var a = a.split("|"),
							b = {},
							d = 0,
							c = a.length;
						if (2 < c)
							for (; d < c; d++) {
								var e = a[d].split(":");
								e[0] && (b[e[0]] = decodeURIComponent(e[1] || ""))
							}
						else
							b = {
								luc: a[0] || "",
								suc: a[1] || ""
							};
						return b
					};
					var m = b.generateRand = function(a) {
						var b = "",
							d = 0;
						for (a = a || 32; d < a; d++)
							b += "0123456789abcdef".charAt(Math.ceil(1E8 * Math.random()) %
								16);
						return b
					};
					b.generateCid = function() {
						for (var a = (new Date).getTime().toString(), b = m(), d = 0, c = a
								.length, e = 0; e < c; e++)
							d += parseInt(a[e]);
						for (var c = d % 32, f = d, d = b.length, e = 0; e < d; e++)
							e !== c && (f += parseInt(b[e], 16));
						e = (f % 16).toString(16);
						a = a + "_" + b.substr(0, c) + e.toString() + b.substr(1 + c, d);
						return t["default"].set("mars_cid", a, 7),
							a
					};
					b.closest = function(a, b) {
						for (; a;) {
							if (a.getAttribute(b))
								return a;
							a = a.parentElement
						}
					}
				}, function(a, b) {
					var d = {}.hasOwnProperty;
					a.exports = function(a, b) {
						return d.call(a, b)
					}
				}, function(a, b, d) {
					a.exports = !d(13)(function() {
						return 7 != Object.defineProperty({}, "a", {
							get: function() {
								return 7
							}
						}).a
					})
				}, function(a, b, d) {
					var c = d(3),
						e = d(63),
						g = d(41),
						t = Object.defineProperty;
					b.f = d(8) ? Object.defineProperty : function(a, b, d) {
						if (c(a),
							b = g(b, !0),
							c(d),
							e)
							try {
								return t(a, b, d)
							} catch (f) {}
						if ("get" in d || "set" in d)
							throw TypeError("Accessors not supported!");
						return "value" in d && (a[b] = d.value),
							a
					}
				}, function(a, b, d) {
					var c = d(9),
						e = d(25);
					a.exports = d(8) ? function(a, b, d) {
							return c.f(a, b, e(1, d))
						} :
						function(a, b, d) {
							return a[b] = d,
								a
						}
				}, function(a, b, d) {
					a.exports = {
						"default": d(128),
						__esModule: !0
					}
				}, function(a, b, d) {
					var c = d(61),
						e = d(40);
					a.exports = function(a) {
						return c(e(a))
					}
				}, function(a, b) {
					a.exports = function(a) {
						try {
							return !!a()
						} catch (b) {
							return !0
						}
					}
				}, function(a, b, d) {
					b.__esModule = !0;
					b["default"] = function(a, b) {
						if (!(a instanceof b))
							throw new TypeError("Cannot call a class as a function");
					}
				}, function(a, b) {
					a.exports = {}
				}, function(a, b, d) {
					a.exports = {
						"default": d(123),
						__esModule: !0
					}
				}, function(a, b) {
					a.exports = !0
				}, function(a, b) {
					var d = {}.toString;
					a.exports = function(a) {
						return d.call(a).slice(8, -1)
					}
				}, function(a, b, d) {
					var c = d(62),
						e = d(36);
					a.exports = Object.keys || function(a) {
						return c(a, e)
					}
				}, function(a, b, d) {
					var c = d(26);
					a.exports = function(a, b, d) {
						if (c(a),
							void 0 === b)
							return a;
						switch (d) {
							case 1:
								return function(d) {
									return a.call(b, d)
								};
							case 2:
								return function(d, c) {
									return a.call(b, d, c)
								};
							case 3:
								return function(d, c, e) {
									return a.call(b, d, c, e)
								}
						}
						return function() {
							return a.apply(b, arguments)
						}
					}
				}, function(a, b, d) {
					b.__esModule = !0;
					b["default"] = {
						get: function(a) {
							for (var b = document.cookie ? document.cookie.split(";") :
									[], d = 0; d < b.length; d++) {
								var c = b[d].trim().split("="),
									e = c[0],
									c = decodeURIComponent(c[1]);
								if (a === e)
									return c
							}
						},
						getAll: function() {
							for (var a = {}, b = document.cookie ? document.cookie
									.split(";") : [], d = 0; d < b.length; d++) {
								var c = b[d].trim().split("="),
									e = c[0],
									c = decodeURIComponent(c[1]);
								a[e] = c
							}
							return a
						},
						set: function(a, b, d) {
							var c = this.getDomain();
							if (d) {
								var e = new Date;
								e.setTime(e.getTime() + 864E5 * d);
								document.cookie = a + "=" + encodeURIComponent(b) +
									";expires=" + e.toGMTString() + ";path=/;domain=." +
									c
							} else
								document.cookie = a + "=" + encodeURIComponent(b) +
								";path=/;domain=." + c
						},
						del: function(a) {
							var b = this.getDomain();
							document.cookie = a +
								"=; expires=Mon, 26 Jul 1997 05:00:00 GMT; path=/;" + (
									b ? "domain=" + b : "")
						},
						getDomain: function() {
							var a = document.domain && document.domain
								.toLocaleLowerCase();
							return a ? -1 !== a.indexOf("vipshop.com") ? "vipshop.com" :
								-1 !== a.indexOf("appvipshop.com") ? "appvipshop.com" :
								-1 !== a.indexOf("vipglobal.hk") ? "vipglobal.hk" : -
								1 !== a.indexOf("vpal.com") ? "vpal.com" : -1 !== a
								.indexOf("ebatong.com") ? "ebatong.com" : "vip.com" :
								"vip.com"
						}
					}
				}, function(a, b, d) {
					var c = d(9).f,
						e = d(7),
						g = d(2)("toStringTag");
					a.exports = function(a, b, d) {
						a && !e(a = d ? a : a.prototype, g) && c(a, g, {
							configurable: !0,
							value: b
						})
					}
				}, function(a, b) {
					b.f = {}.propertyIsEnumerable
				}, function(a, b) {
					var d = 0,
						c = Math.random();
					a.exports = function(a) {
						return "Symbol(".concat(void 0 === a ? "" : a, ")_", (++d + c)
							.toString(36))
					}
				}, function(a, b) {
					a.exports = function(a, b) {
						return {
							enumerable: !(1 & a),
							configurable: !(2 & a),
							writable: !(4 & a),
							value: b
						}
					}
				}, function(a, b) {
					a.exports = function(a) {
						if ("function" != typeof a)
							throw TypeError(a + " is not a function!");
						return a
					}
				}, function(a, b, d) {
					function c(a) {
						var b, d;
						this.promise = new a(function(a, c) {
							if (void 0 !== b || void 0 !== d)
								throw TypeError("Bad Promise constructor");
							b = a;
							d = c
						});
						this.resolve = e(b);
						this.reject = e(d)
					}
					var e = d(26);
					a.exports.f = function(a) {
						return new c(a)
					}
				}, function(a, b, d) {
					a.exports = {
						"default": d(89),
						__esModule: !0
					}
				}, function(a, b, d) {
					b.__esModule = !0;
					b.URL_FULL_PATH_REG = /^(http(s)?:)?\/\//;
					b.TRACKER_ATTR = "moblie-tracker";
					b.TRACKER_SERVER = {
						CLIENT: "//sc.appvipshop.com/vips-mobile-tracker/router.do?service=vip.clientbaseinfo.logger&platform=pc",
						PAGE: "//sc.appvipshop.com/vips-mobile-tracker/router.do?service=vip.page.logger&platform=pc",
						ACTIVITY: "//sc.appvipshop.com/vips-mobile-tracker/router.do?service=vip.activityinfo.logger&platform=pc",
						IMPRESSION: "//sc.appvipshop.com/vips-mobile-tracker/router.do?service=vip.impression.logger&platform=pc",
						EXCEPTION: "//sc.appvipshop.com/vips-mobile-tracker/router.do?service=h5.exception.logger&platform=pc"
					};
					b.TRACKER_TAG = {
						ET_TAP: "tracker-tap",
						ET_EXPOSE: "tracker-expose",
						ET_SLIDE: "tracker-slide",
						ET_LOAD: "tracker-load",
						ET_INTERFACE: "tracker-interface",
						OPTIONS: "data-tracker-option",
						EXPOSE_OPTIONS: "tracker-expose-data",
						CANSEND: "data-canSendMars",
						EXPOSE_SEED: "mars_exposure_sead"
					};
					b.MIDDLEWARE_TYPE_COMMON_INFO = "comminfo";
					b.MIDDLEWARE_TYPE_PAGE = "pageTracker";
					b.MIDDLEWARE_TYPE_ACT = "actTracker";
					b.MIDDLEWARE_TYPE_EXCEPTION = "exceptionTracker";
					b.MIDDLEWARE_TYPE_IMPRESSION = "impressionTracker"
				}, function(a, b, d) {
					var c = d(1),
						e = d(0),
						g = d(17),
						t = d(31),
						m = d(9).f;
					a.exports = function(a) {
						var b = e.Symbol || (e.Symbol = g ? {} : c.Symbol || {});
						"_" == a.charAt(0) || a in b || m(b, a, {
							value: t.f(a)
						})
					}
				}, function(a, b, d) {
					b.f = d(2)
				}, function(a, b, d) {
					function c() {}
					var e = d(3),
						g = d(118),
						t = d(36),
						m = d(38)("IE_PROTO"),
						q = function() {
							var a;
							a = d(42)("iframe");
							var b = t.length;
							a.style.display = "none";
							d(56).appendChild(a);
							a.src = "javascript:";
							(a = a.contentWindow.document).open();
							a.write("<script>document.F=Object\x3c/script>");
							a.close();
							for (q = a.F; b--;)
								delete q.prototype[t[b]];
							return q()
						};
					a.exports = Object.create || function(a, b) {
						var d;
						return null !== a ? (c.prototype = e(a),
								d = new c,
								c.prototype = null,
								d[m] = a) : d = q(),
							void 0 === b ? d : g(d, b)
					}
				}, function(a, b, d) {
					function c(a) {
						return a && a.__esModule ? a : {
							"default": a
						}
					}
					b.__esModule = !0;
					a = c(d(122));
					var e = c(d(113)),
						g = "function" == typeof e["default"] && "symbol" == typeof a[
						"default"] ? function(a) {
							return typeof a
						} :
						function(a) {
							return a && "function" == typeof e["default"] && a.constructor ===
								e["default"] && a !== e["default"].prototype ? "symbol" :
								typeof a
						};
					b["default"] = "function" == typeof e["default"] && "symbol" === g(a[
							"default"]) ? function(a) {
							return void 0 === a ? "undefined" : g(a)
						} :
						function(a) {
							return a && "function" == typeof e["default"] && a.constructor ===
								e["default"] && a !== e["default"].prototype ? "symbol" :
								void 0 === a ? "undefined" : g(a)
						}
				}, function(a, b, d) {
					var c = d(40);
					a.exports = function(a) {
						return Object(c(a))
					}
				}, function(a, b) {
					b.f = Object.getOwnPropertySymbols
				}, function(a, b) {
					a.exports =
						"constructor hasOwnProperty isPrototypeOf propertyIsEnumerable toLocaleString toString valueOf"
						.split(" ")
				}, function(a, b, d) {
					b = d(0);
					var c = d(1),
						e = c["__core-js_shared__"] || (c["__core-js_shared__"] = {});
					(a.exports = function(a, b) {
						return e[a] || (e[a] = void 0 !== b ? b : {})
					})("versions", []).push({
						version: b.version,
						mode: d(17) ? "pure" : "global",
						copyright: "\u00a9 2018 Denis Pushkarev (zloirock.ru)"
					})
				}, function(a, b, d) {
					var c = d(37)("keys"),
						e = d(24);
					a.exports = function(a) {
						return c[a] || (c[a] = e(a))
					}
				}, function(a, b) {
					var d = Math.ceil,
						c = Math.floor;
					a.exports = function(a) {
						return isNaN(a = +a) ? 0 : (0 < a ? c : d)(a)
					}
				}, function(a, b) {
					a.exports = function(a) {
						if (void 0 == a)
							throw TypeError("Can't call method on  " + a);
						return a
					}
				}, function(a, b, d) {
					var c = d(5);
					a.exports = function(a, b) {
						if (!c(a))
							return a;
						var d, e;
						if (b && "function" == typeof(d = a.toString) && !c(e = d.call(
							a)) || "function" == typeof(d = a.valueOf) && !c(e = d.call(
							a)) || !b && "function" == typeof(d = a.toString) && !c(e = d
								.call(a)))
							return e;
						throw TypeError("Can't convert object to primitive value");
					}
				}, function(a, b, d) {
					b = d(5);
					var c = d(1).document,
						e = b(c) && b(c.createElement);
					a.exports = function(a) {
						return e ? c.createElement(a) : {}
					}
				}, function(a, b, d) {
					b.__esModule = !0;
					b["default"] = {
						parseURL: function(a) {
							var b = document.createElement("a");
							a = b.href = a;
							for (var d = b.protocol.replace(":", ""), c = b.hostname,
									e = b.port, f = b.search, g, h = {}, s =
									decodeURIComponent(b.search).replace(/^\?/, "")
									.split("&"), u = s.length, p = 0; p < u; p++)
								s[p] && (h[(g = s[p].split("="))[0]] = g[1]);
							return {
								source: a,
								protocol: d,
								host: c,
								port: e,
								query: f,
								params: h,
								file: (b.pathname.match(/\/([^\/?#]+)$/i) || [, ""])[1],
								hash: b.hash.replace("#", ""),
								path: b.pathname.replace(/^([^\/])/, "/$1"),
								relative: (b.href.match(/tps?:\/\/[^\/]+(.+)/) || [,
									""])[1],
								segments: b.pathname.replace(/^\//, "").split("/")
							}
						},
						getQueryStringByName: function(a, b) {
							var d = b.match(RegExp("[?&]" + a + "=([^&^#]+)", "i"));
							return null == d || 1 > d.length ? "" : d[1]
						}
					}
				}, function(a, b, d) {
					a.exports = {
						"default": d(73),
						__esModule: !0
					}
				}, function(a, b, d) {
					function c(a, b, d, f) {
						var h = (0,
								g.isArray)(b),
							t = (0,
								g.isObject)(b);
						(0,
							e["default"])(b).forEach(function(e) {
							var l = b[e],
								p = (0,
									g.isArray)(l),
								x = (0,
									g.isObject)(l);
							f && (e = d ? f : f + "[" + (t || x || p ? e : "") + "]");
							!f && h ? a.add(l.name, l.value) : p || !d && x ? c(a, l, d,
								e) : a.add(e, l)
						})
					}
					b.__esModule = !0;
					var e = function(a) {
						return a && a.__esModule ? a : {
							"default": a
						}
					}(d(44));
					b.isSupportPassive = function() {
						return supportsPassive
					};
					b.prepareFormData = c;
					b.param = function(a, b) {
						var d = [];
						return d.add = function(a, b) {
								(0,
									g.isFunction)(b) && (b = b());
								null == b && (b = "");
								this.push([a, b])
							},
							c(d, a, b),
							d.map(function(a) {
								var b = a[1];
								return h(a[0]) + "=" + h(b)
							}).join("&").replace(/%20/g, "+")
					};
					b.appendQuery = function(a, b) {
						return "" == b ? a : (a + "&" + b).replace(/[&?]{1,2}/, "?")
					};
					var g = d(6),
						h = encodeURIComponent
				}, function(a, b, d) {
					var c = d(3),
						e = d(5),
						g = d(27);
					a.exports = function(a, b) {
						if (c(a),
							e(b) && b.constructor === a)
							return b;
						var d = g.f(a);
						return (0,
								d.resolve)(b),
							d.promise
					}
				}, function(a, b) {
					a.exports = function(a) {
						try {
							return {
								e: !1,
								v: a()
							}
						} catch (b) {
							return {
								e: !0,
								v: b
							}
						}
					}
				}, function(a, b, d) {
					function c() {
						var a = +this;
						if (y.hasOwnProperty(a)) {
							var b = y[a];
							delete y[a];
							b()
						}
					}

					function e(a) {
						c.call(a.data)
					}
					var g, h, m, q = d(20),
						r = d(82),
						p = d(56),
						s = d(42),
						u = d(1),
						A = u.process;
					b = u.setImmediate;
					var v = u.clearImmediate,
						z = u.MessageChannel,
						x = u.Dispatch,
						w = 0,
						y = {};
					b && v || (b = function(a) {
							for (var b = [], d = 1; d < arguments.length;)
								b.push(arguments[d++]);
							return y[++w] = function() {
									r("function" == typeof a ? a : Function(a), b)
								},
								g(w),
								w
						},
						v = function(a) {
							delete y[a]
						},
						"process" == d(18)(A) ? g = function(a) {
							A.nextTick(q(c, a, 1))
						} :
						x && x.now ? g = function(a) {
							x.now(q(c, a, 1))
						} :
						z ? (m = (h = new z).port2,
							h.port1.onmessage = e,
							g = q(m.postMessage, m, 1)) : u.addEventListener &&
						"function" == typeof postMessage && !u.importScripts ? (g =
							function(a) {
								u.postMessage(a + "", "*")
							},
							u.addEventListener("message", e, !1)) : g =
						"onreadystatechange" in s("script") ? function(a) {
							p.appendChild(s("script")).onreadystatechange = function() {
								p.removeChild(this);
								c.call(a)
							}
						} :
						function(a) {
							setTimeout(q(c, a, 1), 0)
						}
					);
					a.exports = {
						set: b,
						clear: v
					}
				}, function(a, b, d) {
					var c = d(3),
						e = d(26),
						g = d(2)("species");
					a.exports = function(a, b) {
						var d, f = c(a).constructor;
						return void 0 === f || void 0 == (d = c(f)[g]) ? b : e(d)
					}
				}, function(a, b, d) {
					var c = d(18),
						e = d(2)("toStringTag"),
						g = "Arguments" == c(function() {
							return arguments
						}());
					a.exports = function(a) {
						var b, d;
						if (void 0 === a)
							b = "Undefined";
						else {
							var f;
							if (null === a)
								f = "Null";
							else {
								a: {
									var h = a = Object(a);
									try {
										f = h[e];
										break a
									} catch (s) {}
									f = void 0
								}
								f = "string" == typeof(b = f) ? b : g ? c(a) : "Object" == (
										d = c(a)) && "function" == typeof a.callee ?
									"Arguments" : d
							}
							b = f
						}
						return b
					}
				}, function(a, b, d) {
					b.__esModule = !0;
					b.handleCommonData = function(a, b) {
						return a.switcher = void 0 === a.switcher || a.switcher,
							a
					}
				}, function(a, b) {}, function(a, b, d) {
					var c = d(23),
						e = d(25),
						g = d(12),
						h = d(41),
						m = d(7),
						q = d(63),
						r = Object.getOwnPropertyDescriptor;
					b.f = d(8) ? r : function(a, b) {
						if (a = g(a),
							b = h(b, !0),
							q)
							try {
								return r(a, b)
							} catch (d) {}
						if (m(a, b))
							return e(!c.f.call(a, b), a[b])
					}
				}, function(a, b, d) {
					var c = d(62),
						e = d(36).concat("length", "prototype");
					b.f = Object.getOwnPropertyNames || function(a) {
						return c(a, e)
					}
				}, function(a, b, d) {
					d(116);
					a = d(1);
					b = d(10);
					var c = d(15);
					d = d(2)("toStringTag");
					for (var e =
							"CSSRuleList CSSStyleDeclaration CSSValueList ClientRectList DOMRectList DOMStringList DOMTokenList DataTransferItemList FileList HTMLAllCollection HTMLCollection HTMLFormElement HTMLSelectElement MediaList MimeTypeArray NamedNodeMap NodeList PaintRequestList Plugin PluginArray SVGLengthList SVGNumberList SVGPathSegList SVGPointList SVGStringList SVGTransformList SourceBufferList StyleSheetList TextTrackCueList TextTrackList TouchList"
							.split(" "), g = 0; g < e.length; g++) {
						var h = e[g],
							m = a[h];
						(m = m && m.prototype) && !m[d] && b(m, d, h);
						c[h] = c.Array
					}
				}, function(a, b, d) {
					b = d(1).document;
					a.exports = b && b.documentElement
				}, function(a, b, d) {
					a.exports = d(10)
				}, function(a, b, d) {
					function c() {
						return this
					}
					var e = d(17),
						g = d(4),
						h = d(57),
						m = d(10),
						q = d(15),
						r = d(119),
						p = d(22),
						s = d(117),
						u = d(2)("iterator"),
						A = !([].keys && "next" in [].keys());
					a.exports = function(a, b, d, f, y, D, H) {
						function J(a) {
							return !A && a in B ? B[a] : function() {
								return new d(this, a)
							}
						}
						r(d, b, f);
						var F, R, L;
						f = b + " Iterator";
						var N = "values" == y,
							K = !1,
							B = a.prototype,
							T = B[u] || B["@@iterator"] || y && B[y],
							E = T || J(y),
							S = y ? N ? J("entries") : E : void 0,
							I = "Array" == b && B.entries || T;
						if (I && (L = s(I.call(new a))) !== Object.prototype && L.next && (
								p(L, f, !0),
								e || "function" == typeof L[u] || m(L, u, c)),
							N && T && "values" !== T.name && (K = !0,
								E = function() {
									return T.call(this)
								}
							),
							e && !H || !A && !K && B[u] || m(B, u, E),
							q[b] = E,
							q[f] = c,
							y)
							if (F = {
									values: N ? E : J("values"),
									keys: D ? E : J("keys"),
									entries: S
								},
								H)
								for (R in F)
									R in B || h(B, R, F[R]);
							else
								g(g.P + g.F * (A || K), b, F);
						return F
					}
				}, function(a, b, d) {
					var c = d(120)(!0);
					d(58)(String, "String", function(a) {
						this._t = String(a);
						this._i = 0
					}, function() {
						var a, b = this._t,
							d = this._i;
						return d >= b.length ? {
							value: void 0,
							done: !0
						} : (a = c(b, d),
							this._i += a.length, {
								value: a,
								done: !1
							})
					})
				}, function(a, b, d) {
					var c = d(39),
						e = Math.min;
					a.exports = function(a) {
						return 0 < a ? e(c(a), 9007199254740991) : 0
					}
				}, function(a, b, d) {
					var c = d(18);
					a.exports = Object("z").propertyIsEnumerable(0) ? Object : function(a) {
						return "String" == c(a) ? a.split("") : Object(a)
					}
				}, function(a, b, d) {
					var c = d(7),
						e = d(12),
						g = d(125)(!1),
						h = d(38)("IE_PROTO");
					a.exports = function(a, b) {
						var d, f = e(a),
							s = 0,
							u = [];
						for (d in f)
							d != h && c(f, d) && u.push(d);
						for (; b.length > s;)
							c(f, d = b[s++]) && (~g(u, d) || u.push(d));
						return u
					}
				}, function(a, b, d) {
					a.exports = !d(8) && !d(13)(function() {
						return 7 != Object.defineProperty(d(42)("div"), "a", {
							get: function() {
								return 7
							}
						}).a
					})
				}, function(a, b, d) {
					function c(a) {
						return a && a.__esModule ? a : {
							"default": a
						}
					}
					b.__esModule = !0;
					var e = c(d(44));
					b.getChannelData = function() {
						0 < arguments.length && void 0;
						var a = g["default"].parseURL(window.location.href).params,
							b = a.chl_type || "",
							d = a.tra_from || a.cps_from || a.chl_info || "",
							a = (0,
								e["default"])(a).length ? (0,
								h.json2String)(a) : "";
						return {
							chl_type: encodeURIComponent(decodeURIComponent(b)),
							chl_info: encodeURIComponent(decodeURIComponent(d)),
							chl_param: encodeURIComponent(a)
						}
					};
					var g = c(d(43)),
						h = d(6)
				}, function(a, b, d) {
					function c(a) {
						return a && a.__esModule ? a : {
							"default": a
						}
					}
					b.__esModule = !0;
					var e = c(d(11)),
						g = c(d(16)),
						h = c(d(21)),
						m = c(d(43)),
						q = d(6),
						r = d(64);
					a = function(a) {
						var b, d = m["default"].parseURL(window.location.href).params,
							c = navigator.userAgent,
							f = h["default"].getAll(),
							n = d.mars_cid || f.mars_cid || (0,
								q.generateCid)(),
							p = f.mars_sid ? f.mars_sid : (b = (0,
									q.generateRand)(),
								h["default"].set("mars_sid", b, 7),
								b);
						b = {
							cookie_id: n,
							user_agent: encodeURIComponent(c)
						};
						var p = {
								app_type: "web",
								app_name: "shop_web",
								session_id: p
							},
							n = (0,
								r.getChannelData)(),
							w = {
								user_id: d.vipruid || f.VipRUID,
								user_class: d.user_class || (0,
									q.parseVipuinfo)().luc || "",
								user_label: d.user_label || (0,
									q.parseVipuinfo)().ul || ""
							},
							y = (new Date).getTime(),
							D = {
								page_url: encodeURIComponent(location.href),
								refer_url: encodeURIComponent(document.referrer),
								stream_id: y
							},
							y = {
								timestamp: y
							},
							c = (0,
								q.getSysteminfo)(c),
							f = {
								warehouse: d.warehouse || f.vip_wh || f["WAP[p_wh]"] ||
									"VIP_NH",
								factory: c.factory,
								model: c.model,
								os: c.os,
								wapid: d.wapid,
								client: d.client,
								method: navigator.sendBeacon ? "beacon" : "ajax"
							};
						"1" === d.nova && (f.isNova = "1",
							f.special_id = d.special_id,
							f._src = d._src);
						d = {
							ext_info: encodeURIComponent((0,
								g["default"])(f))
						};
						return "moniter" === a ? (0,
							e["default"])(b, p, w, n, y) : (0,
							e["default"])(b, p, w, n, y, D, d)
					};
					a = {
						"default": a("def"),
						moniter: a("moniter")
					};
					b["default"] = a
				}, function(a, b) {
					"function" == typeof Object.create ? a.exports = function(a, b) {
							a.super_ = b;
							a.prototype = Object.create(b.prototype, {
								constructor: {
									value: a,
									enumerable: !1,
									writable: !0,
									configurable: !0
								}
							})
						} :
						a.exports = function(a, b) {
							function c() {}
							a.super_ = b;
							c.prototype = b.prototype;
							a.prototype = new c;
							a.prototype.constructor = a
						}
				}, function(a, b) {
					a.exports = function(a) {
						return a && "object" == typeof a && "function" == typeof a.copy &&
							"function" == typeof a.fill && "function" == typeof a.readUInt8
					}
				}, function(a, b) {
					function c() {
						throw Error("setTimeout has not been defined");
					}

					function e() {
						throw Error("clearTimeout has not been defined");
					}

					function g(a) {
						if (r === setTimeout)
							return setTimeout(a, 0);
						if ((r === c || !r) && setTimeout)
							return r = setTimeout,
								setTimeout(a, 0);
						try {
							return r(a, 0)
						} catch (b) {
							try {
								return r.call(null, a, 0)
							} catch (e) {
								return r.call(this, a, 0)
							}
						}
					}

					function k() {
						x && v && (x = !1,
							v.length ? z = v.concat(z) : w = -1,
							z.length && h())
					}

					function h() {
						if (!x) {
							var a = g(k);
							x = !0;
							for (var b = z.length; b;) {
								v = z;
								for (z = []; ++w < b;)
									v && v[w].run();
								w = -1;
								b = z.length
							}
							v = null;
							x = !1;
							(function(a) {
								if (p === clearTimeout)
									return clearTimeout(a);
								if ((p === e || !p) && clearTimeout)
									return p = clearTimeout,
										clearTimeout(a);
								try {
									return p(a)
								} catch (b) {
									try {
										return p.call(null, a)
									} catch (c) {
										return p.call(this, a)
									}
								}
							})(a)
						}
					}

					function m(a, b) {
						this.fun = a;
						this.array = b
					}

					function q() {}
					var r, p, s = a.exports = {};
					try {
						r = "function" == typeof setTimeout ? setTimeout : c
					} catch (u) {
						r = c
					}
					try {
						p = "function" == typeof clearTimeout ? clearTimeout : e
					} catch (A) {
						p = e
					}!0;
					var v, z = [],
						x = !1,
						w = -1;
					s.nextTick = function(a) {
						var b = Array(arguments.length - 1);
						if (1 < arguments.length)
							for (var c = 1; c < arguments.length; c++)
								b[c - 1] = arguments[c];
						z.push(new m(a, b));
						1 !== z.length || x || g(h)
					};
					m.prototype.run = function() {
						this.fun.apply(null, this.array)
					};
					s.title = "browser";
					s.browser = !0;
					s.env = {};
					s.argv = [];
					s.version = "";
					s.versions = {};
					s.on = q;
					s.addListener = q;
					s.once = q;
					s.off = q;
					s.removeListener = q;
					s.removeAllListeners = q;
					s.emit = q;
					s.prependListener = q;
					s.prependOnceListener = q;
					s.listeners = function(a) {
						return []
					};
					s.binding = function(a) {
						throw Error("process.binding is not supported");
					};
					s.cwd = function() {
						return "/"
					};
					s.chdir = function(a) {
						throw Error("process.chdir is not supported");
					};
					s.umask = function() {
						return 0
					}
				}, function(a, b, c) {
					(function(a) {
						function e(a, c) {
							var d = {
								seen: [],
								stylize: h
							};
							return 3 <= arguments.length && (d.depth = arguments[2]),
								4 <= arguments.length && (d.colors = arguments[3]),
								s(c) ? d.showHidden = c : c && b._extend(d, c),
								v(d.showHidden) && (d.showHidden = !1),
								v(d.depth) && (d.depth = 2),
								v(d.colors) && (d.colors = !1),
								v(d.customInspect) && (d.customInspect = !0),
								d.colors && (d.stylize = g),
								m(d, a, d.depth)
						}

						function g(a, b) {
							var c = e.styles[b];
							return c ? "\u001b[" + e.colors[c][0] + "m" + a + "\u001b[" + e
								.colors[c][1] + "m" : a
						}

						function h(a, b) {
							return a
						}

						function m(a, c, d) {
							if (a.customInspect && c && D(c.inspect) && c.inspect !== b
								.inspect && (!c.constructor || c.constructor.prototype !==
									c)) {
								var e = c.inspect(d, a);
								return A(e) || (e = m(a, e, d)),
									e
							}
							var g = function(a, b) {
								if (v(b))
									return a.stylize("undefined", "undefined");
								if (A(b)) {
									var c = "'" + JSON.stringify(b).replace(/^"|"$/g,
										"").replace(/'/g, "\\'").replace(/\\"/g,
										'"') + "'";
									return a.stylize(c, "string")
								}
								if (u(b))
									return a.stylize("" + b, "number");
								if (s(b))
									return a.stylize("" + b, "boolean");
								if (null === b)
									return a.stylize("null", "null")
							}(a, c);
							if (g)
								return g;
							var g = Object.keys(c),
								l = function(a) {
									var b = {};
									return a.forEach(function(a, c) {
											b[a] = !0
										}),
										b
								}(g);
							if (a.showHidden && (g = Object.getOwnPropertyNames(c)),
								y(c) && (0 <= g.indexOf("message") || 0 <= g.indexOf(
									"description")))
								return q(c);
							if (0 === g.length) {
								if (D(c))
									return a.stylize("[Function" + (c.name ? ": " + c.name :
										"") + "]", "special");
								if (z(c))
									return a.stylize(RegExp.prototype.toString.call(c),
										"regexp");
								if (w(c))
									return a.stylize(Date.prototype.toString.call(c),
										"date");
								if (y(c))
									return q(c)
							}
							var k = "",
								n = !1,
								h = ["{", "}"];
							p(c) && (n = !0,
								h = ["[", "]"]);
							D(c) && (k = " [Function" + (c.name ? ": " + c.name : "") +
							"]");
							return z(c) && (k = " " + RegExp.prototype.toString.call(c)),
								w(c) && (k = " " + Date.prototype.toUTCString.call(c)),
								y(c) && (k = " " + q(c)),
								0 !== g.length || n && 0 != c.length ? 0 > d ? z(c) ? a
								.stylize(RegExp.prototype.toString.call(c), "regexp") : a
								.stylize("[Object]", "special") : (a.seen.push(c),
									e = n ? function(a, b, c, d, e) {
										for (var f = [], g = 0, l = b.length; g < l; ++g)
											Object.prototype.hasOwnProperty.call(b, String(
												g)) ? f.push(r(a, b, c, d, String(g), !0)) :
											f.push("");
										return e.forEach(function(e) {
												e.match(/^\d+$/) || f.push(r(a, b, c, d,
													e, !0))
											}),
											f
									}(a, c, d, l, g) : g.map(function(b) {
										return r(a, c, d, l, b, n)
									}),
									a.seen.pop(),
									function(a, b, c) {
										return 60 < a.reduce(function(a, b) {
												return 0,
													0 <= b.indexOf("\n") && 0,
													a + b.replace(/\u001b\[\d\d?m/g, "")
													.length + 1
											}, 0) ? c[0] + ("" === b ? "" : b + "\n ") +
											" " + a.join(",\n  ") + " " + c[1] : c[0] + b +
											" " + a.join(", ") + " " + c[1]
									}(e, k, h)) : h[0] + k + h[1]
						}

						function q(a) {
							return "[" + Error.prototype.toString.call(a) + "]"
						}

						function r(a, b, c, d, e, f) {
							var g, l, k;
							if ((k = Object.getOwnPropertyDescriptor(b, e) || {
									value: b[e]
								}).get ? l = k.set ? a.stylize("[Getter/Setter]",
								"special") : a.stylize("[Getter]", "special") : k.set && (
									l = a.stylize("[Setter]", "special")),
								Object.prototype.hasOwnProperty.call(d, e) || (g = "[" + e +
									"]"),
								l || (0 > a.seen.indexOf(k.value) ? -1 < (l = null === c ?
									m(a, k.value, null) : m(a, k.value, c - 1)).indexOf(
									"\n") && (l = f ? l.split("\n").map(function(a) {
									return "  " + a
								}).join("\n").substr(2) : "\n" + l.split("\n").map(
									function(a) {
										return "   " + a
									}).join("\n")) : l = a.stylize("[Circular]",
									"special")),
								v(g)) {
								if (f && e.match(/^\d+$/))
									return l;
								g = (g = JSON.stringify("" + e)).match(
									/^"([a-zA-Z_][a-zA-Z_0-9]*)"$/) ? (g = g.substr(1, g
										.length - 2),
									a.stylize(g, "name")) : (g = g.replace(/'/g, "\\'")
									.replace(/\\"/g, '"').replace(/(^"|"$)/g, "'"),
									a.stylize(g, "string"))
							}
							return g + ": " + l
						}

						function p(a) {
							return Array.isArray(a)
						}

						function s(a) {
							return "boolean" == typeof a
						}

						function u(a) {
							return "number" == typeof a
						}

						function A(a) {
							return "string" == typeof a
						}

						function v(a) {
							return void 0 === a
						}

						function z(a) {
							return x(a) && "[object RegExp]" === Object.prototype.toString
								.call(a)
						}

						function x(a) {
							return "object" == typeof a && null !== a
						}

						function w(a) {
							return x(a) && "[object Date]" === Object.prototype.toString
								.call(a)
						}

						function y(a) {
							return x(a) && ("[object Error]" === Object.prototype.toString
								.call(a) || a instanceof Error)
						}

						function D(a) {
							return "function" == typeof a
						}

						function H(a) {
							return 10 > a ? "0" + a.toString(10) : a.toString(10)
						}

						function J(a, b) {
							if (!a) {
								var c = Error("Promise was rejected with a falsy value");
								c.reason = a;
								a = c
							}
							return b(a)
						}
						var F = Object.getOwnPropertyDescriptors || function(a) {
								for (var b = Object.keys(a), c = {}, d = 0; d < b
									.length; d++)
									c[b[d]] = Object.getOwnPropertyDescriptor(a, b[d]);
								return c
							},
							R = /%[sdj%]/g;
						b.format = function(a) {
							if (!A(a)) {
								for (var b = [], c = 0; c < arguments.length; c++)
									b.push(e(arguments[c]));
								return b.join(" ")
							}
							for (var c = 1, d = arguments, f = d.length, b = String(a)
									.replace(R, function(a) {
										if ("%%" === a)
											return "%";
										if (f <= c)
											return a;
										switch (a) {
											case "%s":
												return String(d[c++]);
											case "%d":
												return Number(d[c++]);
											case "%j":
												try {
													return JSON.stringify(d[c++])
												} catch (b) {
													return "[Circular]"
												}
												default:
													return a
										}
									}), g = d[c]; c < f; g = d[++c])
								null !== g && x(g) ? b += " " + e(g) : b += " " + g;
							return b
						};
						b.deprecate = function(c, d) {
							if (void 0 !== a && !0 === a.noDeprecation)
								return c;
							if (void 0 === a)
								return function() {
									return b.deprecate(c, d).apply(this, arguments)
								};
							var e = !1;
							return function() {
								if (!e) {
									if (a.throwDeprecation)
										throw Error(d);
									a.traceDeprecation ? console.trace(d) : console
										.error(d);
									e = !0
								}
								return c.apply(this, arguments)
							}
						};
						var L, N = {};
						b.debuglog = function(c) {
							if (v(L) && (L = a.env.NODE_DEBUG || ""),
								c = c.toUpperCase(),
								!N[c])
								if (RegExp("\\b" + c + "\\b", "i").test(L)) {
									var d = a.pid;
									N[c] = function() {
										var a = b.format.apply(b, arguments);
										console.error("%s %d: %s", c, d, a)
									}
								} else
									N[c] = function() {};
							return N[c]
						};
						(b.inspect = e).colors = {
							bold: [1, 22],
							italic: [3, 23],
							underline: [4, 24],
							inverse: [7, 27],
							white: [37, 39],
							grey: [90, 39],
							black: [30, 39],
							blue: [34, 39],
							cyan: [36, 39],
							green: [32, 39],
							magenta: [35, 39],
							red: [31, 39],
							yellow: [33, 39]
						};
						e.styles = {
							special: "cyan",
							number: "yellow",
							"boolean": "yellow",
							undefined: "grey",
							"null": "bold",
							string: "green",
							date: "magenta",
							regexp: "red"
						};
						b.isArray = p;
						b.isBoolean = s;
						b.isNull = function(a) {
							return null === a
						};
						b.isNullOrUndefined = function(a) {
							return null == a
						};
						b.isNumber = u;
						b.isString = A;
						b.isSymbol = function(a) {
							return "symbol" == typeof a
						};
						b.isUndefined = v;
						b.isRegExp = z;
						b.isObject = x;
						b.isDate = w;
						b.isError = y;
						b.isFunction = D;
						b.isPrimitive = function(a) {
							return null === a || "boolean" == typeof a || "number" ==
								typeof a || "string" == typeof a || "symbol" ==
								typeof a || void 0 === a
						};
						b.isBuffer = c(67);
						var K = "Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec".split(
						" ");
						b.log = function() {
							console.log("%s - %s", function() {
								var a = new Date,
									b = [H(a.getHours()), H(a.getMinutes()), H(a
										.getSeconds())].join(":");
								return [a.getDate(), K[a.getMonth()], b].join(
									" ")
							}(), b.format.apply(b, arguments))
						};
						b.inherits = c(66);
						b._extend = function(a, b) {
							if (!b || !x(b))
								return a;
							for (var c = Object.keys(b), d = c.length; d--;)
								a[c[d]] = b[c[d]];
							return a
						};
						var B = "undefined" != typeof Symbol ? Symbol(
							"util.promisify.custom") : void 0;
						b.promisify = function(a) {
							function b() {
								for (var c, d, e = new Promise(function(a, b) {
										c = a;
										d = b
									}), f = [], g = 0; g < arguments.length; g++)
									f.push(arguments[g]);
								f.push(function(a, b) {
									a ? d(a) : c(b)
								});
								try {
									a.apply(this, f)
								} catch (l) {
									d(l)
								}
								return e
							}
							if ("function" != typeof a)
								throw new TypeError(
									'The "original" argument must be of type Function'
									);
							if (B && a[B]) {
								if ("function" != typeof(b = a[B]))
									throw new TypeError(
										'The "util.promisify.custom" argument must be of type Function'
										);
								return Object.defineProperty(b, B, {
										value: b,
										enumerable: !1,
										writable: !1,
										configurable: !0
									}),
									b
							}
							return Object.setPrototypeOf(b, Object.getPrototypeOf(a)),
								B && Object.defineProperty(b, B, {
									value: b,
									enumerable: !1,
									writable: !1,
									configurable: !0
								}),
								Object.defineProperties(b, F(a))
						};
						b.promisify.custom = B;
						b.callbackify = function(b) {
							function c() {
								function d() {
									return g.apply(l, arguments)
								}
								for (var e = [], f = 0; f < arguments.length; f++)
									e.push(arguments[f]);
								var g = e.pop();
								if ("function" != typeof g)
									throw new TypeError(
										"The last argument must be of type Function"
										);
								var l = this;
								b.apply(this, e).then(function(b) {
									a.nextTick(d, null, b)
								}, function(b) {
									a.nextTick(J, b, d)
								})
							}
							if ("function" != typeof b)
								throw new TypeError(
									'The "original" argument must be of type Function'
									);
							return Object.setPrototypeOf(c, Object.getPrototypeOf(b)),
								Object.defineProperties(c, F(b)),
								c
						}
					}).call(this, c(68))
				}, function(a, b, c) {
					function e(a) {
						return a && a.__esModule ? a : {
							"default": a
						}
					}

					function g() {
						return !!navigator.sendBeacon
					}
					b.__esModule = !0;
					var k = e(c(16)),
						h = e(c(28));
					b.supportBeacon = g;
					b.post = function(a) {
						return new h["default"](function(b, c) {
							if (g()) {
								var d = a.url,
									e = a.data,
									f = a.processData;
								if ((0,
										m.isPlainObject)(e))
									if (f) {
										var n = new FormData,
											f = [];
										(0,
											q.prepareFormData)(f, e);
										f.forEach(function(a) {
											n.append(a[0], a[1])
										});
										e = n
									} else
										e = (0,
											k["default"])(e);
								navigator.sendBeacon(d, e) ? b({
									result: 1,
									msg: "\u8fdb\u5165\u4e86\u53d1\u9001\u961f\u5217\uff0c\u6d4f\u89c8\u5668\u4f1a\u5c3d\u529b\u4fdd\u8bc1\u53d1\u9001\u6210\u529f",
									type: "beacon"
								}) : c({
									error: "\u961f\u5217\u603b\u6570\u3001\u6570\u636e\u5927\u5c0f\u7684\u9650\u5236!"
								})
							}
						})
					};
					var m = c(6),
						q = c(45)
				}, function(a, b, c) {
					var e = c(4),
						g = c(0),
						k = c(13);
					a.exports = function(a, b) {
						var c = (g.Object || {})[a] || Object[a],
							d = {};
						d[a] = b(c);
						e(e.S + e.F * k(function() {
							c(1)
						}), "Object", d)
					}
				}, function(a, b, c) {
					var e = c(34),
						g = c(19);
					c(71)("keys", function() {
						return function(a) {
							return g(e(a))
						}
					})
				}, function(a, b, c) {
					c(72);
					a.exports = c(0).Object.keys
				}, function(a, b, c) {
					function e(a) {
						return a && a.__esModule ? a : {
							"default": a
						}
					}

					function g(a) {
						a.processData && a.data && !(0,
							s.isString)(a.data) && (a.data = (0,
							u.param)(a.data, a.traditional));
						!a.data || a.type && "GET" != a.type.toUpperCase() && "jsonp" != a
							.dataType || (a.url = (0,
									u.appendQuery)(a.url, a.data),
								a.data = void 0)
					}

					function k() {}

					function h(a, b, c, d) {
						d.error && d.error.call(null, c, b, a);
						d.complete && d.complete.call(null, c, b)
					}

					function m(a) {
						var b, c = (0,
							p["default"])({
							type: "GET",
							processData: !0,
							async: !0,
							crossDomain: !1
						}, a);
						a = void 0;
						c.crossDomain || ((a = document.createElement("a")).href = c.url,
							a.href = a.href,
							c.crossDomain = A.protocol + "//" + A.host != a.protocol +
							"//" + a.host);
						c.url || (c.url = window.location.toString()); -
						1 < (b = c.url.indexOf("#")) && (c.url = c.url.slice(0, b));
						g(c);
						var d = c.dataType;
						!1 === c.cache && (c.url = (0,
							u.appendQuery)(c.url, "_=" + Date.now()));
						b = x[d];
						var e = void 0,
							f = {};
						a = function(a, b) {
							a && (f[a.toLocaleLowerCase()] = [a, b])
						};
						var m = /^([\w-]+:)\/\//.test(c.url) ? RegExp.$1 : window.location
							.protocol,
							n;
						if (window.XDomainRequest)
							a: {
								try {
									n = new window.XDomainRequest;
									break a
								} catch (q) {}
								n = void 0
							}
						else
							a: {
								try {
									n = new window.XMLHttpRequest;
									break a
								} catch (s) {}
								n = void 0
							}
						var r = n;
						n = r.setRequestHeader;
						if (c.crossDomain || a("X-Requested-With", "XMLHttpRequest"),
							a("Accept", b || "*/*"),
							(b = c.mimeType || b) && (-1 < b.indexOf(",") && (b = b.split(",",
									2)[0]),
								r.overrideMimeType && r.overrideMimeType(b)),
							(c.contentType || !1 !== c.contentType && c.data && "GET" != c.type
								.toUpperCase()) && a("Content-Type", c.contentType ||
								"application/x-www-form-urlencoded"),
							c.headers)
							for (var I in c.headers)
								a(I, f[I]);
						r.setRequestHeader = a;
						r.onreadystatechange = function() {
							if (4 == r.readyState) {
								r.onreadystatechange = k;
								clearTimeout(e);
								var a = void 0,
									b = !1;
								if (200 <= r.status && 300 > r.status || 304 == r.status ||
									0 == r.status || 0 == r.status && "file:" == m) {
									if (d = d || function(a) {
											return (a = a && a.split(";", 2)[0]) && (a ==
													z ? "html" : a == v ? "json" : w.test(
													a) ? "script" : y.test(a) && "xml") ||
												"text"
										}(c.mimeType || r.getResponseHeader(
										"content-type")),
										"arraybuffer" == r.responseType || "blob" == r
										.responseType)
										a = r.response;
									else {
										a = r.responseText;
										try {
											"xml" == d ? a = r.responseXML : "json" == d &&
												(a = D.test(a) ? null : JSON.parse(a))
										} catch (f) {
											b = f
										}
										if (b)
											return h(b, "parsererror", r, c)
									}
									(function(a, b, c) {
										c.success && c.success.call(null, a, "success",
											b);
										c.complete && c.complete.call(null, b,
											"success")
									})(a = a || {
										result: 1,
										type: "ajax"
									}, r, c)
								} else
									h(r.statusText || null, r.status ? "error" : "abort", r,
										c)
							}
						};
						if (r.open(c.type, c.url, !!c.async),
							c.xhrFields)
							for (var Q in c.xhrFields)
								r[Q] = c.xhrFields[Q];
						if (n)
							for (var G in f)
								n.apply(r, f[G]);
						0 < c.timeout && (e = setTimeout(function() {
							r.onreadystatechange = k;
							r.abort();
							h(null, "timeout", r, c)
						}, c.timeout));
						r.send(c.data ? c.data : null)
					}
					b.__esModule = !0;
					var q = e(c(16)),
						r = e(c(28)),
						p = e(c(11));
					b.serializeData = g;
					b.ajax = m;
					b.get = function(a) {
						m(a)
					};
					b.post = function(a) {
						return new r["default"](function(b, c) {
							m((0,
								p["default"])(a, {
								type: "POST",
								contentType: "text/plain;charset=UTF-8",
								data: (0,
									q["default"])(a.data),
								error: function(a, b, d) {
									c({
										error: "request timeout"
									})
								},
								success: function(a) {
									b(a)
								}
							}))
						})
					};
					var s = c(6),
						u = c(45),
						A = document.createElement("a"),
						v = "application/json",
						z = "text/html",
						x = {
							script: "text/javascript, application/javascript, application/x-javascript",
							json: v,
							xml: "application/xml, text/xml",
							html: z,
							text: "text/plain"
						},
						w = /^(?:text|application)\/javascript/i,
						y = /^(?:text|application)\/xml/i,
						D = /^\s*$/
				}, function(a, b, c) {
					a = c(4);
					var e = c(27),
						g = c(47);
					a(a.S, "Promise", {
						"try": function(a) {
							var b = e.f(this);
							a = g(a);
							return (a.e ? b.reject : b.resolve)(a.v),
								b.promise
						}
					})
				}, function(a, b, c) {
					a = c(4);
					var e = c(0),
						g = c(1),
						k = c(49),
						h = c(46);
					a(a.P + a.R, "Promise", {
						"finally": function(a) {
							var b = k(this, e.Promise || g.Promise),
								c = "function" == typeof a;
							return this.then(c ? function(c) {
									return h(b, a()).then(function() {
										return c
									})
								} :
								a, c ? function(c) {
									return h(b, a()).then(function() {
										throw c;
									})
								} :
								a)
						}
					})
				}, function(a, b, c) {
					var e = c(2)("iterator"),
						g = !1;
					try {
						var k = [7][e]();
						k["return"] = function() {
							g = !0
						};
						Array.from(k, function() {
							throw 2;
						})
					} catch (h) {}
					a.exports = function(a, b) {
						if (!b && !g)
							return !1;
						var c = !1;
						try {
							var d = [7],
								f = d[e]();
							f.next = function() {
								return {
									done: c = !0
								}
							};
							d[e] = function() {
								return f
							};
							a(d)
						} catch (k) {}
						return c
					}
				}, function(a, b, c) {
					var e = c(1),
						g = c(0),
						k = c(9),
						h = c(8),
						m = c(2)("species");
					a.exports = function(a) {
						a = "function" == typeof g[a] ? g[a] : e[a];
						h && a && !a[m] && k.f(a, m, {
							configurable: !0,
							get: function() {
								return this
							}
						})
					}
				}, function(a, b, c) {
					var e = c(10);
					a.exports = function(a, b, c) {
						for (var d in b)
							c && a[d] ? a[d] = b[d] : e(a, d, b[d]);
						return a
					}
				}, function(a, b, c) {
					b = c(1).navigator;
					a.exports = b && b.userAgent || ""
				}, function(a, b, c) {
					var e = c(1),
						g = c(48).set,
						k = e.MutationObserver || e.WebKitMutationObserver,
						h = e.process,
						m = e.Promise,
						q = "process" == c(18)(h);
					a.exports = function() {
						function a() {
							var e, f;
							for (q && (e = h.domain) && e.exit(); b;) {
								f = b.fn;
								b = b.next;
								try {
									f()
								} catch (g) {
									throw b ? d() : c = void 0,
										g;
								}
							}
							c = void 0;
							e && e.enter()
						}
						var b, c, d;
						if (q)
							d = function() {
								h.nextTick(a)
							};
						else if (!k || e.navigator && e.navigator.standalone)
							if (m && m.resolve) {
								var f = m.resolve(void 0);
								d = function() {
									f.then(a)
								}
							} else
								d = function() {
									g.call(e, a)
								};
						else {
							var p = !0,
								z = document.createTextNode("");
							(new k(a)).observe(z, {
								characterData: !0
							});
							d = function() {
								z.data = p = !p
							}
						}
						return function(a) {
							a = {
								fn: a,
								next: void 0
							};
							c && (c.next = a);
							b || (b = a,
								d());
							c = a
						}
					}
				}, function(a, b) {
					a.exports = function(a, b, c) {
						var e = void 0 === c;
						switch (b.length) {
							case 0:
								return e ? a() : a.call(c);
							case 1:
								return e ? a(b[0]) : a.call(c, b[0]);
							case 2:
								return e ? a(b[0], b[1]) : a.call(c, b[0], b[1]);
							case 3:
								return e ? a(b[0], b[1], b[2]) : a.call(c, b[0], b[1], b[
								2]);
							case 4:
								return e ? a(b[0], b[1], b[2], b[3]) : a.call(c, b[0], b[1],
									b[2], b[3])
						}
						return a.apply(c, b)
					}
				}, function(a, b, c) {
					var e = c(50),
						g = c(2)("iterator"),
						k = c(15);
					a.exports = c(0).getIteratorMethod = function(a) {
						if (void 0 != a)
							return a[g] || a["@@iterator"] || k[e(a)]
					}
				}, function(a, b, c) {
					var e = c(15),
						g = c(2)("iterator"),
						k = Array.prototype;
					a.exports = function(a) {
						return void 0 !== a && (e.Array === a || k[g] === a)
					}
				}, function(a, b, c) {
					var e = c(3);
					a.exports = function(a, b, c, d) {
						try {
							return d ? b(e(c)[0], c[1]) : b(c)
						} catch (f) {
							throw b = a["return"],
								void 0 !== b && e(b.call(a)),
								f;
						}
					}
				}, function(a, b, c) {
					var e = c(20),
						g = c(85),
						k = c(84),
						h = c(3),
						m = c(60),
						q = c(83),
						r = {},
						p = {};
					(b = a.exports = function(a, b, c, d, f) {
						var x, w;
						f = f ? function() {
								return a
							} :
							q(a);
						c = e(c, d, b ? 2 : 1);
						d = 0;
						if ("function" != typeof f)
							throw TypeError(a + " is not iterable!");
						if (k(f))
							for (f = m(a.length); d < f; d++) {
								if ((w = b ? c(h(x = a[d])[0], x[1]) : c(a[d])) === r ||
									w === p)
									return w
							}
						else
							for (f = f.call(a); !(x = f.next()).done;)
								if ((w = g(f, c, x.value, b)) === r || w === p)
									return w
					}).BREAK = r;
					b.RETURN = p
				}, function(a, b) {
					a.exports = function(a, b, c, e) {
						if (!(a instanceof b) || void 0 !== e && e in a)
							throw TypeError(c + ": incorrect invocation!");
						return a
					}
				}, function(a, b, c) {
					function e() {}

					function g(a) {
						var b;
						return !(!z(a) || "function" != typeof(b = a.then)) && b
					}

					function k(a, b) {
						if (!a._n) {
							a._n = !0;
							var c = a._c;
							J(function() {
								for (var d = a._v, e = 1 == a._s, f = 0; c.length >
									f;) {
									var k = c[f++],
										m = void 0,
										h = void 0,
										n = void 0,
										q = e ? k.ok : k.fail,
										r = k.resolve,
										p = k.reject,
										s = k.domain;
									try {
										q ? (e || (2 == a._h && G(a),
												a._h = 1),
											!0 === q ? m = d : (s && s.enter(),
												m = q(d),
												s && (s.exit(),
													n = !0)),
											m === k.promise ? p(N(
												"Promise-chain cycle")) : (h = g(
											m)) ? h.call(m, r, p) : r(m)) : p(d)
									} catch (t) {
										s && !n && s.exit(),
											p(t)
									}
								}
								a._c = [];
								a._n = !1;
								b && !a._h && Q(a)
							})
						}
					}

					function h(a) {
						var b = this;
						b._d || (b._d = !0,
							(b = b._w || b)._v = a,
							b._s = 2,
							b._a || (b._a = b._c.slice()),
							k(b, !0))
					}
					var m, q, r, p, s = c(17),
						u = c(1),
						A = c(20),
						v = c(50);
					a = c(4);
					var z = c(5),
						x = c(26),
						w = c(87),
						y = c(86),
						D = c(49),
						H = c(48).set,
						J = c(81)();
					b = c(27);
					var F = c(47),
						R = c(80),
						L = c(46),
						N = u.TypeError,
						K = u.process,
						B = K && K.versions,
						T = B && B.v8 || "",
						E = u.Promise,
						S = "process" == v(K),
						I = q = b.f,
						v = !! function() {
							try {
								var a = E.resolve(1),
									b = (a.constructor = {})[c(2)("species")] = function(a) {
										a(e, e)
									};
								return (S || "function" == typeof PromiseRejectionEvent) && a
									.then(e) instanceof b && 0 !== T.indexOf("6.6") && -1 === R
									.indexOf("Chrome/66")
							} catch (f) {}
						}(),
						Q = function(a) {
							H.call(u, function() {
								var b, c, d, e = a._v,
									f = 1 !== a._h && 0 === (a._a || a._c).length;
								if (f && (b = F(function() {
											S ? K.emit("unhandledRejection", e, a) :
												(c = u.onunhandledrejection) ? c({
													promise: a,
													reason: e
												}) : (d = u.console) && d.error && d
												.error(
													"Unhandled promise rejection", e
													)
										}),
										a._h = S || 1 !== a._h && 0 === (a._a || a._c)
										.length ? 2 : 1),
									a._a = void 0,
									f && b.e)
									throw b.v;
							})
						},
						G = function(a) {
							H.call(u, function() {
								var b;
								S ? K.emit("rejectionHandled", a) : (b = u
									.onrejectionhandled) && b({
									promise: a,
									reason: a._v
								})
							})
						},
						U = function(a) {
							var b, c = this;
							if (!c._d) {
								c._d = !0;
								c = c._w || c;
								try {
									if (c === a)
										throw N("Promise can't be resolved itself");
									(b = g(a)) ? J(function() {
										var d = {
											_w: c,
											_d: !1
										};
										try {
											b.call(a, A(U, d, 1), A(h, d, 1))
										} catch (e) {
											h.call(d, e)
										}
									}): (c._v = a,
										c._s = 1,
										k(c, !1))
								} catch (d) {
									h.call({
										_w: c,
										_d: !1
									}, d)
								}
							}
						};
					v || (E = function(a) {
							w(this, E, "Promise", "_h");
							x(a);
							m.call(this);
							try {
								a(A(U, this, 1), A(h, this, 1))
							} catch (b) {
								h.call(this, b)
							}
						},
						(m = function(a) {
							this._c = [];
							this._a = void 0;
							this._s = 0;
							this._d = !1;
							this._v = void 0;
							this._h = 0;
							this._n = !1
						}).prototype = c(79)(E.prototype, {
							then: function(a, b) {
								var c = I(D(this, E));
								return c.ok = "function" != typeof a || a,
									c.fail = "function" == typeof b && b,
									c.domain = S ? K.domain : void 0,
									this._c.push(c),
									this._a && this._a.push(c),
									this._s && k(this, !1),
									c.promise
							},
							"catch": function(a) {
								return this.then(void 0, a)
							}
						}),
						r = function() {
							var a = new m;
							this.promise = a;
							this.resolve = A(U, a, 1);
							this.reject = A(h, a, 1)
						},
						b.f = I = function(a) {
							return a === E || a === p ? new r(a) : q(a)
						}
					);
					a(a.G + a.W + a.F * !v, {
						Promise: E
					});
					c(22)(E, "Promise");
					c(78)("Promise");
					p = c(0).Promise;
					a(a.S + a.F * !v, "Promise", {
						reject: function(a) {
							var b = I(this);
							return (0,
									b.reject)(a),
								b.promise
						}
					});
					a(a.S + a.F * (s || !v), "Promise", {
						resolve: function(a) {
							return L(s && this === p ? E : this, a)
						}
					});
					a(a.S + a.F * !(v && c(77)(function(a) {
						E.all(a)["catch"](e)
					})), "Promise", {
						all: function(a) {
							var b = this,
								c = I(b),
								d = c.resolve,
								e = c.reject,
								f = F(function() {
									var c = [],
										f = 0,
										g = 1;
									y(a, !1, function(a) {
										var l = f++,
											k = !1;
										c.push(void 0);
										g++;
										b.resolve(a).then(function(a) {
											k || (k = !0,
												c[l] = a,
												--g || d(c))
										}, e)
									});
									--g || d(c)
								});
							return f.e && e(f.v),
								c.promise
						},
						race: function(a) {
							var b = this,
								c = I(b),
								d = c.reject,
								e = F(function() {
									y(a, !1, function(a) {
										b.resolve(a).then(c.resolve, d)
									})
								});
							return e.e && d(e.v),
								c.promise
						}
					})
				}, function(a, b, c) {
					c(52);
					c(59);
					c(55);
					c(88);
					c(76);
					c(75);
					a.exports = c(0).Promise
				}, function(a, b, c) {
					function e(a) {
						return a && a.__esModule ? a : {
							"default": a
						}
					}

					function g(a) {
						(0,
							m["default"])(this, g);
						this._queue = [];
						this._batchDelay = 2;
						a = (0,
							h["default"])({
							senderBatchDelay: 200
						}, a);
						var b = a.senderUrl;
						this._batchDelay = a.senderBatchDelay;
						this._url = b
					}
					b.__esModule = !0;
					var k = e(c(28)),
						h = e(c(11)),
						m = e(c(14));
					a = c(74);
					var q = c(70),
						r = c(29);
					c(69);
					var p = (0,
						q.supportBeacon)() ? q.post : a.post;
					c = (g.prototype._schedule = function() {
							var a = this;
							a._status = 1;
							a._timer || 1 !== a._status || (a._timer = setTimeout(
						function() {
								a.flush();
								a._timer = null
							}, a._batchDelay))
						},
						g.prototype.start = function() {
							this._status = 1;
							this._schedule()
						},
						g.prototype.stop = function() {
							this._status = 2;
							var a = this._timer;
							a && (clearTimeout(a),
								this._timer = null)
						},
						g.prototype._shouldSend = function(a) {
							var b = this;
							return new k["default"](function(c) {
								var d = a.type,
									e = a.data,
									f = a.apiUrl;
								switch (b._commonInfo = e,
									b.apiUrl = f,
									d) {
									case r.MIDDLEWARE_TYPE_COMMON_INFO:
										b._commonInfo = e;
										break;
									default:
										c()
								}
							})
						},
						g.prototype.queue = function(a) {
							var b = this;
							b._shouldSend(a).then(function(c) {
								b._queue.push(a);
								b._schedule()
							})
						},
						g.prototype.send = function(a) {
							var b = this;
							return b._shouldSend(a).then(function() {
								return p({
									url: b.apiUrl || b._url,
									data: b._commonInfo
								})
							}).then(function(b) {
								a.success && a.success(b)
							})["catch"](function(b) {
								a.fail && a.fail(res)
							})
						},
						g.prototype.flush = function() {
							console.log("flush");
							0 < this._queue.length && (console.log("flush"),
								p({
									url: this.apiUrl || this._url,
									data: this._commonInfo
								}),
								this._queue = [])
						},
						g);
					b["default"] = c
				}, function(a, b, c) {
					var e;
					a.exports = (e = {},
						(e = function() {
							this.listeners = {}
						}).prototype = {
							addEventListener: function(a, b, c) {
								for (var d = [], e = arguments.length, f = 0; f <
									e; f++)
									d.push(arguments[f]);
								d = 3 < d.length ? d.splice(3, d.length - 1) : [];
								"undefined" != typeof this.listeners[a] ? this
									.listeners[a].push({
										scope: c,
										callback: b,
										args: d
									}) : this.listeners[a] = [{
										scope: c,
										callback: b,
										args: d
									}]
							},
							removeEventListener: function(a, b, c) {
								if ("undefined" != typeof this.listeners[a]) {
									for (var d = this.listeners[a].length, e = [], f =
										0; f < d; f++) {
										var g = this.listeners[a][f];
										g.scope == c && g.callback == b || e.push(g)
									}
									this.listeners[a] = e
								}
							},
							hasEventListener: function(a, b, c) {
								if ("undefined" != typeof this.listeners[a]) {
									var d = this.listeners[a].length;
									if (void 0 === b && void 0 === c)
										return 0 < d;
									for (var e = 0; e < d; e++) {
										var f = this.listeners[a][e];
										if ((!c || f.scope == c) && f.callback == b)
											return !0
									}
								}
								return !1
							},
							dispatch: function(a, b) {
								for (var c = {
										type: a,
										target: b
									}, d = [], e = arguments.length, f = 0; f < e; f++)
									d.push(arguments[f]);
								if (d = 2 < d.length ? d.splice(2, d.length - 1) : [],
									d = [c].concat(d),
									"undefined" != typeof this.listeners[a])
									for (c = this.listeners[a].slice(),
										e = c.length,
										f = 0; f < e; f++) {
										var g = c[f];
										if (g && g.callback) {
											var h = d.concat(g.args);
											g.callback.apply(g.scope, h)
										}
									}
							},
							getEvents: function() {
								var a = "",
									b;
								for (b in this.listeners)
									for (var c = this.listeners[b].length, d = 0; d <
										c; d++)
										var e = this.listeners[b][d],
											a = a + (e.scope && e.scope.className ? e
												.scope.className : "anonymous"),
											a = a + (" listen for '" + b + "'\n");
								return a
							}
						},
						new e)
				}, function(a, b, c) {
					b.__esModule = !0;
					a = c(91);
					b["default"] = (a && a.__esModule ? a : {
						"default": a
					})["default"]
				}, function(a, b, c) {
					function e(a) {
						return a && a.__esModule ? a : {
							"default": a
						}
					}

					function g(a) {
						(0,
							h["default"])(this, g);
						var b = this;
						this._middleware = {
							destroy: [],
							pipe: []
						};
						this._sender = null;
						this.hasBeforeSenderFunction = !1;
						this.beforeSendFn = function() {};
						this.bus = null;
						var c = (0,
							k["default"])({
							middleware: []
						}, a);
						a = c.middleware;
						var d = c.sender,
							e = (c.active,
								m["default"]);
						b._sender = d;
						b.bus = e;
						b.beforeSend = function(a) {
							this.hasBeforeSenderFunction = !0;
							this.beforeSendFn = a
						};
						a.forEach(function(a) {
							a.create && a.create({
								options: c,
								bus: e,
								stat: b
							});
							["pipe", "destroy"].forEach(function(c) {
								return b._pushMWHook(c, a)
							})
						})
					}
					b.__esModule = !0;
					var k = e(c(11)),
						h = e(c(14)),
						m = e(c(92));
					a = (g.prototype._pushMWHook = function(a, b) {
							b[a] && this._middleware[a].push(b[a].bind(b))
						},
						g.prototype.destroy = function() {
							this._middleware.destroy.forEach(function(a) {
								return a()
							})
						},
						g.prototype.start = function() {
							this._sender.start()
						},
						g.prototype.stop = function() {
							this._sender.stop()
						},
						g.prototype._pipe = function(a) {
							for (var b = a, c = this._middleware.pipe, d = c.length, e =
								0; e < d && !1 !== (b = c[e](a)); e++)
							;
							return b
						},
						g.prototype.queue = function(a) {
							!1 !== (a = this._pipe(a)) && this._sender.queue(a)
						},
						g.prototype.send = function(a) {
							!1 !== (a = this._pipe(a)) && this._sender.send(a)
						},
						g.prototype.flush = function() {
							this._sender.flush()
						},
						g);
					b["default"] = a
				}, function(a, b, c) {
					a = c(4);
					a(a.S, "Object", {
						create: c(32)
					})
				}, function(a, b, c) {
					c(94);
					var e = c(0).Object;
					a.exports = function(a, b) {
						return e.create(a, b)
					}
				}, function(a, b, c) {
					a.exports = {
						"default": c(95),
						__esModule: !0
					}
				}, function(a, b, c) {
					function e(a, b) {
						if (k(a),
							!g(b) && null !== b)
							throw TypeError(b + ": can't set as prototype!");
					}
					var g = c(5),
						k = c(3);
					a.exports = {
						set: Object.setPrototypeOf || ("__proto__" in {} ? function(a, b,
						f) {
							try {
								(f = c(20)(Function.call, c(53).f(Object.prototype,
									"__proto__").set, 2))(a, []),
								b = !(a instanceof Array)
							} catch (g) {
								b = !0
							}
							return function(a, c) {
								return e(a, c),
									b ? a.__proto__ = c : f(a, c),
									a
							}
						}({}, !1) : void 0),
						check: e
					}
				}, function(a, b, c) {
					a = c(4);
					a(a.S, "Object", {
						setPrototypeOf: c(97).set
					})
				}, function(a, b, c) {
					c(98);
					a.exports = c(0).Object.setPrototypeOf
				}, function(a, b, c) {
					a.exports = {
						"default": c(99),
						__esModule: !0
					}
				}, function(a, b, c) {
					function e(a) {
						return a && a.__esModule ? a : {
							"default": a
						}
					}
					b.__esModule = !0;
					var g = e(c(100)),
						k = e(c(96)),
						h = e(c(33));
					b["default"] = function(a, b) {
						if ("function" != typeof b && null !== b)
							throw new TypeError(
								"Super expression must either be null or a function, not " +
								(void 0 === b ? "undefined" : (0,
									h["default"])(b)));
						a.prototype = (0,
							k["default"])(b && b.prototype, {
							constructor: {
								value: a,
								enumerable: !1,
								writable: !0,
								configurable: !0
							}
						});
						b && (g["default"] ? (0,
							g["default"])(a, b) : a.__proto__ = b)
					}
				}, function(a, b, c) {
					b.__esModule = !0;
					var e = function(a) {
						return a && a.__esModule ? a : {
							"default": a
						}
					}(c(33));
					b["default"] = function(a, b) {
						if (!a)
							throw new ReferenceError(
								"this hasn't been initialised - super() hasn't been called"
								);
						return !b || "object" !== (void 0 === b ? "undefined" : (0,
							e["default"])(b)) && "function" != typeof b ? a : b
					}
				}, function(a, b, c) {
					function e(a) {
						return a && a.__esModule ? a : {
							"default": a
						}
					}

					function g(a) {
						return (0,
								h["default"])(this, g),
							(0,
								m["default"])(this, C.call(this, (0,
								k["default"])({
								sender: new p["default"](a),
								middleware: []
							}, a)))
					}
					b.__esModule = !0;
					var k = e(c(11)),
						h = e(c(14)),
						m = e(c(102));
					a = e(c(101));
					var q = e(c(93)),
						p = e(c(90)),
						C;
					c = (C = q["default"],
						(0,
							a["default"])(g, C),
						g);
					b["default"] = c
				}, function(a, b, c) {
					function e(a) {
						return a && a.__esModule ? a : {
							"default": a
						}
					}

					function g() {
						(0,
							m["default"])(this, g)
					}
					b.__esModule = !0;
					var k = e(c(16)),
						h = e(c(11)),
						m = e(c(14)),
						q = c(6),
						p = c(51),
						C = e(c(21)),
						s = c(29);
					a = (g.prototype.create = function(a) {
							var b = this,
								c = a.stat;
							this.stat = c;
							this.activityData = null;
							this.opts = a;
							a = (0,
								h["default"])({
								activityUse: !0,
								activityManualCollect: !1
							}, a.options);
							var d = a.activityUse,
								e = a.activityManualCollect;
							if (b.activityUse = d,
								b.activityManualCollect = e,
								c.report)
								throw Error(
									"has the same function in other middlewave\uff01");
							if (c.report = this._actSend.bind(this),
								d) {
								var f = function() {
										(0,
											q.addEvent)(document.body, "click", function(
										a) {
											var c = a.target || a.srcElement,
												d = s.TRACKER_TAG.ET_TAP;
											if ((c = (a = c.getAttribute(d)) ? c : (0,
													q.closest)(c, d)) && (a = a || (0,
														q.closest)(c, d) && (0,
														q.closest)(c, d).getAttribute(
													d))) {
												c = c.getAttribute(s.TRACKER_TAG
													.OPTIONS);
												d = {};
												if (c)
													try {
														d = (0,
															q.json2Object)(c)
													} catch (e) {
														throw Error(e);
													}
												d = (0,
													h["default"])({}, d, {
													activity_type: "tap"
												}, {
													activity_id: a
												});
												b._actSend(d)
											}
										})
									},
									c = function() {
										(0,
											q.isFunction)(e) ? e({
											bindEvent: f
										}): setTimeout(f, 10)
									};
								"complete" === document.readyState ? c() : (0,
									q.addEvent)(window, "load", c)
							}
						},
						g.prototype._beforeSend = function(a, b) {
							var c = this.stat,
								d = a;
							return c.hasBeforeSenderFunction && (d = c.beforeSendFn(a)),
								(0,
									p.handleCommonData)(d, b)
						},
						g.prototype._actSend = function(a, b) {
							var c = this.opts,
								d = this,
								e = this.stat,
								f = a.activity_type,
								g = s.TRACKER_SERVER.ACTIVITY,
								l = void 0,
								m = this._beforeSend(a, f);
							if (m.switcher && ("expose" === f ? (g = s.TRACKER_SERVER
										.IMPRESSION,
										l = (0,
											h["default"])({}, c.options.data, a),
										m.activity_commmon && (l = (0,
											h["default"])({}, {
											activity_commmon: m.activity_commmon
										}, l))) : l = (0,
										h["default"])({}, c.options.data, m),
									l.activity_commmon && (l.activity_commmon =
										encodeURIComponent((0,
											q.json2String)(l.activity_commmon))),
									l.activity_data && (l.activity_data =
										encodeURIComponent((0,
											q.json2String)(l.activity_data))),
									l.activity_ext && (l.activity_ext = encodeURIComponent((
										0,
										q.json2String)(l.activity_ext))),
									l.ext_info && (0,
										q.isObject)(l.ext_info) && (l.ext_info =
										encodeURIComponent((0,
											q.json2String)(l.ext_info))),
									(0,
										h["default"])(c.options, {
										senderUrl: g
									}),
									d.activityUse)) {
								var c = window,
									n = function() {
										var a = (0,
											q.setSessionNo)();
										if (e.send({
												type: s.MIDDLEWARE_TYPE_ACT,
												data: (0,
													h["default"])({}, l, {
													session_no: a
												}),
												apiUrl: g,
												success: function(a) {
													b && b(a)
												}
											}),
											"expose" !== f) {
											var c = (0,
													h["default"])({}, l, {
													session_no: a
												}),
												a = c.activity_data,
												d = c.activity_ext,
												m = c.activity_id,
												c = c.activity_type,
												a = (0,
													k["default"])({
													activity_data: a,
													activity_ext: d,
													activity_id: m,
													activity_type: c
												});
											C["default"].set("vip_tracker_source_from", a)
										}
									},
									m = function() {
										(0,
											q.isFunction)(d.activityManualCollect) ? d
											.activityManualCollect({
												doCollect: n
											}): setTimeout(n, 10)
									};
								"complete" === document.readyState ? m() : (0,
									q.addEvent)(c, "load", m)
							}
						},
						g.prototype.destroy = function() {
							console.warn("destroy", opts);
							document.body.removeEventListener("click", bindClick, !1)
						},
						g);
					b["default"] = a
				}, function(a, b, c) {
					c(30)("observable")
				}, function(a, b, c) {
					c(30)("asyncIterator")
				}, function(a, b, c) {
					var e = c(12),
						g = c(54).f,
						k = {}.toString,
						h = "object" == typeof window && window && Object.getOwnPropertyNames ?
						Object.getOwnPropertyNames(window) : [];
					a.exports.f = function(a) {
						var b;
						if (h && "[object Window]" == k.call(a))
							try {
								b = g(a)
							} catch (c) {
								b = h.slice()
							}
						else
							b = g(e(a));
						return b
					}
				}, function(a, b, c) {
					var e = c(18);
					a.exports = Array.isArray || function(a) {
						return "Array" == e(a)
					}
				}, function(a, b, c) {
					var e = c(19),
						g = c(35),
						k = c(23);
					a.exports = function(a) {
						var b = e(a),
							c = g.f;
						if (c)
							for (var d, c = c(a), f = k.f, h = 0; c.length > h;)
								f.call(a, d = c[h++]) && b.push(d);
						return b
					}
				}, function(a, b, c) {
					function e(a) {
						m(a, g, {
							value: {
								i: "O" + ++q,
								w: {}
							}
						})
					}
					var g = c(24)("meta"),
						h = c(5),
						p = c(7),
						m = c(9).f,
						q = 0,
						r = Object.isExtensible || function() {
							return !0
						},
						C = !c(13)(function() {
							return r(Object.preventExtensions({}))
						}),
						s = a.exports = {
							KEY: g,
							NEED: !1,
							fastKey: function(a, b) {
								if (!h(a))
									return "symbol" == typeof a ? a : ("string" ==
										typeof a ? "S" : "P") + a;
								if (!p(a, g)) {
									if (!r(a))
										return "F";
									if (!b)
										return "E";
									e(a)
								}
								return a[g].i
							},
							getWeak: function(a, b) {
								if (!p(a, g)) {
									if (!r(a))
										return !0;
									if (!b)
										return !1;
									e(a)
								}
								return a[g].w
							},
							onFreeze: function(a) {
								return C && s.NEED && r(a) && !p(a, g) && e(a),
									a
							}
						}
				}, function(a, b, c) {
					function e(a) {
						var b = V[a] = B(M[W]);
						return b._k = a,
							b
					}

					function g(a, b) {
						F(a);
						for (var c, d = H(b = L(b)), e = 0, f = d.length; e < f;)
							ba(a, c = d[e++], b[c]);
						return a
					}

					function h(a) {
						var b = ha.call(this, a = N(a, !0));
						return !(this === P && r(V, a) && !r(Y, a)) && (!(b || !r(this, a) || !
							r(V, a) || r(this, O) && this[O][a]) || b)
					}

					function p(a, b) {
						if (a = L(a),
							b = N(b, !0),
							a !== P || !r(V, b) || r(Y, b)) {
							var c = Q(a, b);
							return !c || !r(V, b) || r(a, O) && a[O][b] || (c.enumerable = !0),
								c
						}
					}

					function m(a) {
						var b;
						a = U(L(a));
						for (var c = [], d = 0; a.length > d;)
							r(V, b = a[d++]) || b == O || b == u || c.push(b);
						return c
					}

					function q(a) {
						var b, c = a === P;
						a = U(c ? Y : L(a));
						for (var d = [], e = 0; a.length > e;)
							!r(V, b = a[e++]) || c && !r(P, b) || d.push(V[b]);
						return d
					}
					a = c(1);
					var r = c(7),
						C = c(8);
					b = c(4);
					var s = c(57),
						u = c(110).KEY,
						A = c(13),
						v = c(37),
						z = c(22),
						x = c(24),
						w = c(2),
						y = c(31),
						D = c(30),
						H = c(109),
						J = c(108),
						F = c(3),
						R = c(5),
						L = c(12),
						N = c(41),
						K = c(25),
						B = c(32),
						T = c(107),
						E = c(53),
						S = c(9),
						I = c(19),
						Q = E.f,
						G = S.f,
						U = T.f,
						M = a.Symbol,
						Z = a.JSON,
						aa = Z && Z.stringify,
						W = "prototype",
						O = w("_hidden"),
						ga = w("toPrimitive"),
						ha = {}.propertyIsEnumerable,
						X = v("symbol-registry"),
						V = v("symbols"),
						Y = v("op-symbols"),
						P = Object[W],
						v = "function" == typeof M,
						ca = a.QObject,
						da = !ca || !ca[W] || !ca[W].findChild,
						ea = C && A(function() {
							return 7 != B(G({}, "a", {
								get: function() {
									return G(this, "a", {
										value: 7
									}).a
								}
							})).a
						}) ? function(a, b, c) {
							var d = Q(P, b);
							d && delete P[b];
							G(a, b, c);
							d && a !== P && G(P, b, d)
						} :
						G,
						fa = v && "symbol" == typeof M.iterator ? function(a) {
							return "symbol" == typeof a
						} :
						function(a) {
							return a instanceof M
						},
						ba = function(a, b, c) {
							return a === P && ba(Y, b, c),
								F(a),
								b = N(b, !0),
								F(c),
								r(V, b) ? (c.enumerable ? (r(a, O) && a[O][b] && (a[O][b] = !1),
										c = B(c, {
											enumerable: K(0, !1)
										})) : (r(a, O) || G(a, O, K(1, {})),
										a[O][b] = !0),
									ea(a, b, c)) : G(a, b, c)
						};
					v || (s((M = function() {
							if (this instanceof M)
								throw TypeError("Symbol is not a constructor!");
							var a = x(0 < arguments.length ? arguments[0] : void 0),
								b = function(c) {
									this === P && b.call(Y, c);
									r(this, O) && r(this[O], a) && (this[O][a] = !
									1);
									ea(this, a, K(1, c))
								};
							return C && da && ea(P, a, {
									configurable: !0,
									set: b
								}),
								e(a)
						})[W], "toString", function() {
							return this._k
						}),
						E.f = p,
						S.f = ba,
						c(54).f = T.f = m,
						c(23).f = h,
						c(35).f = q,
						C && !c(17) && s(P, "propertyIsEnumerable", h, !0),
						y.f = function(a) {
							return e(w(a))
						}
					);
					b(b.G + b.W + b.F * !v, {
						Symbol: M
					});
					s = "hasInstance isConcatSpreadable iterator match replace search species split toPrimitive toStringTag unscopables"
						.split(" ");
					for (y = 0; s.length > y;)
						w(s[y++]);
					I = I(w.store);
					for (s = 0; I.length > s;)
						D(I[s++]);
					b(b.S + b.F * !v, "Symbol", {
						"for": function(a) {
							return r(X, a += "") ? X[a] : X[a] = M(a)
						},
						keyFor: function(a) {
							if (!fa(a))
								throw TypeError(a + " is not a symbol!");
							for (var b in X)
								if (X[b] === a)
									return b
						},
						useSetter: function() {
							da = !0
						},
						useSimple: function() {
							da = !1
						}
					});
					b(b.S + b.F * !v, "Object", {
						create: function(a, b) {
							return void 0 === b ? B(a) : g(B(a), b)
						},
						defineProperty: ba,
						defineProperties: g,
						getOwnPropertyDescriptor: p,
						getOwnPropertyNames: m,
						getOwnPropertySymbols: q
					});
					Z && b(b.S + b.F * (!v || A(function() {
						var a = M();
						return "[null]" != aa([a]) || "{}" != aa({
							a: a
						}) || "{}" != aa(Object(a))
					})), "JSON", {
						stringify: function(a) {
							for (var b, c, d = [a], e = 1; e < arguments.length;)
								d.push(arguments[e++]);
							if (c = b = d[1],
								(R(b) || void 0 !== a) && !fa(a))
								return J(b) || (b = function(a, b) {
										if ("function" == typeof c && (b = c
												.call(this, a, b)),
											!fa(b))
											return b
									}),
									d[1] = b,
									aa.apply(Z, d)
						}
					});
					M[W][ga] || c(10)(M[W], ga, M[W].valueOf);
					z(M, "Symbol");
					z(Math, "Math", !0);
					z(a.JSON, "JSON", !0)
				}, function(a, b, c) {
					c(111);
					c(52);
					c(106);
					c(105);
					a.exports = c(0).Symbol
				}, function(a, b, c) {
					a.exports = {
						"default": c(112),
						__esModule: !0
					}
				}, function(a, b) {
					a.exports = function(a, b) {
						return {
							value: b,
							done: !!a
						}
					}
				}, function(a, b) {
					a.exports = function() {}
				}, function(a, b, c) {
					b = c(115);
					var e = c(114),
						g = c(15),
						h = c(12);
					a.exports = c(58)(Array, "Array", function(a, b) {
						this._t = h(a);
						this._i = 0;
						this._k = b
					}, function() {
						var a = this._t,
							b = this._k,
							c = this._i++;
						return !a || c >= a.length ? (this._t = void 0,
							e(1)) : e(0, "keys" == b ? c : "values" == b ? a[c] : [
							c, a[c]
						])
					}, "values");
					g.Arguments = g.Array;
					b("keys");
					b("values");
					b("entries")
				}, function(a, b, c) {
					var e = c(7),
						g = c(34),
						h = c(38)("IE_PROTO"),
						p = Object.prototype;
					a.exports = Object.getPrototypeOf || function(a) {
						return a = g(a),
							e(a, h) ? a[h] : "function" == typeof a.constructor &&
							a instanceof a.constructor ? a.constructor.prototype :
							a instanceof Object ? p : null
					}
				}, function(a, b, c) {
					var e = c(9),
						g = c(3),
						h = c(19);
					a.exports = c(8) ? Object.defineProperties : function(a, b) {
						g(a);
						for (var c, d = h(b), f = d.length, p = 0; p < f;)
							e.f(a, c = d[p++], b[c]);
						return a
					}
				}, function(a, b, c) {
					var e = c(32),
						g = c(25),
						h = c(22),
						p = {};
					c(10)(p, c(2)("iterator"), function() {
						return this
					});
					a.exports = function(a, b, c) {
						a.prototype = e(p, {
							next: g(1, c)
						});
						h(a, b + " Iterator")
					}
				}, function(a, b, c) {
					var e = c(39),
						g = c(40);
					a.exports = function(a) {
						return function(b, c) {
							var d, f, h = String(g(b)),
								p = e(c),
								u = h.length;
							return 0 > p || u <= p ? a ? "" : void 0 : 55296 > (d = h
									.charCodeAt(p)) || 56319 < d || p + 1 === u ||
								56320 > (f = h.charCodeAt(p + 1)) || 57343 < f ? a ? h
								.charAt(p) : d : a ? h.slice(p, p + 2) : f - 56320 + (
									d - 55296 << 10) + 65536
						}
					}
				}, function(a, b, c) {
					c(59);
					c(55);
					a.exports = c(31).f("iterator")
				}, function(a, b, c) {
					a.exports = {
						"default": c(121),
						__esModule: !0
					}
				}, function(a, b, c) {
					b = c(0);
					var e = b.JSON || (b.JSON = {
						stringify: JSON.stringify
					});
					a.exports = function(a) {
						return e.stringify.apply(e, arguments)
					}
				}, function(a, b, c) {
					var e = c(39),
						g = Math.max,
						h = Math.min;
					a.exports = function(a, b) {
						return 0 > (a = e(a)) ? g(a + b, 0) : h(a, b)
					}
				}, function(a, b, c) {
					var e = c(12),
						g = c(60),
						h = c(124);
					a.exports = function(a) {
						return function(b, c, d) {
							var f;
							b = e(b);
							var p = g(b.length);
							d = h(d, p);
							if (a && c != c)
								for (; d < p;) {
									if ((f = b[d++]) != f)
										return !0
								}
							else
								for (; d < p; d++)
									if ((a || d in b) && b[d] === c)
										return a || d || 0;
							return !a && -1
						}
					}
				}, function(a, b, c) {
					var e = c(19),
						g = c(35),
						h = c(23),
						p = c(34),
						m = c(61),
						q = Object.assign;
					a.exports = !q || c(13)(function() {
							var a = {},
								b = {},
								c = Symbol();
							return a[c] = 7,
								"abcdefghijklmnopqrst".split("").forEach(function(a) {
									b[a] = a
								}),
								7 != q({}, a)[c] || "abcdefghijklmnopqrst" != Object.keys(
							q({}, b)).join("")
						}) ? function(a, b) {
							for (var c = p(a), d = arguments.length, f = 1, q = g.f, z = h
								.f; f < d;)
								for (var x, w = m(arguments[f++]), y = q ? e(w).concat(q(w)) :
										e(w), D = y.length, H = 0; H < D;)
									z.call(w, x = y[H++]) && (c[x] = w[x]);
							return c
						} :
						q
				}, function(a, b, c) {
					a = c(4);
					a(a.S + a.F, "Object", {
						assign: c(126)
					})
				}, function(a, b, c) {
					c(127);
					a.exports = c(0).Object.assign
				}, function(a, b, c) {
					function e(a) {
						return a && a.__esModule ? a : {
							"default": a
						}
					}

					function g() {
						(0,
							p["default"])(this, g)
					}
					b.__esModule = !0;
					var h = e(c(11)),
						p = e(c(14)),
						m = c(6),
						q = c(29),
						r = c(51),
						C = e(c(21));
					a = (g.prototype.create = function(a) {
							var b = a.stat;
							if (this.stat = b,
								this.opts = a,
								b.initPage)
								throw Error(
									"has the same function in other middlewave\uff01");
							b.initPage = this._pgReport.bind(this)
						},
						g.prototype._pgReport = function(a) {
							var b = this,
								c = b.stat,
								d = (0,
									h["default"])({
									pageTtackerUse: !0,
									pageManualCollect: !1
								}, b.opts.options),
								e = d.pageTtackerUse,
								f = d.pageManualCollect,
								g = b._beforeSend({}, "page"),
								l = a && b._handleExtData(a);
							if (g.switcher && e) {
								a = window;
								var n = function() {
										var a = b.opts.options.data,
											d = C["default"].get("vip_tracker_source_from"),
											e = {
												session_no: (0,
													m.setSessionNo)()
											},
											f = void 0,
											n = void 0;
										d && (d = (0,
												m.json2Object)(d),
											f = d.activity_data || "",
											n = d.activity_ext || "",
											f && (e.activity_data = (0,
												m.json2Object)(decodeURIComponent(
												f))),
											n && (e.activity_ext = (0,
												m.json2Object)(decodeURIComponent(
												n))),
											d.activity_type && (e.activity_type = d
												.activity_type),
											d.activity_id && (e.activity_id = d
												.activity_id));
										g.ext_info && (0,
											m.isObject)(g.ext_info) && (g.ext_info =
											encodeURIComponent((0,
												m.json2String)(g.ext_info)));
										a = (0,
											h["default"])({}, a, g, e, l);
										a.activity_data && (0,
											m.isObject)(a.activity_data) && (a
											.activity_data = encodeURIComponent((0,
												m.json2String)(a.activity_data)));
										a.activity_ext && (0,
											m.isObject)(a.activity_ext) && (a
											.activity_ext = encodeURIComponent((0,
												m.json2String)(a.activity_ext)));
										c.send({
											type: q.MIDDLEWARE_TYPE_PAGE,
											data: a,
											apiUrl: q.TRACKER_SERVER.PAGE,
											success: function(a) {}
										});
										C["default"].set("vip_tracker_source_from", "")
									},
									d = function() {
										(0,
											m.isFunction)(f) ? f({
											doCollect: n
										}): setTimeout(n, 100)
									};
								"complete" === document.readyState ? d() : (0,
									m.addEvent)(a, "load", d)
							}
						},
						g.prototype._handleExtData = function(a) {
							var b = (new Date).getTime(),
								b = {
									stream_id: b,
									timestamp: b
								};
							return void 0 != a.page_url && (b.page_url = encodeURIComponent(
									a.page_url)),
								void 0 != a.refer_url && (b.refer_url = encodeURIComponent(a
									.refer_url)),
								b
						},
						g.prototype._beforeSend = function(a, b) {
							var c = this.stat,
								d = a;
							return c.hasBeforeSenderFunction && (d = c.beforeSendFn(a)),
								(0,
									r.handleCommonData)(d)
						},
						g.prototype.destroy = function() {
							console.warn("destroy")
						},
						g);
					b["default"] = a
				}, function(a, b, c) {
					Array.prototype.forEach || (Array.prototype.forEach = function(a) {
						var b, c;
						if (null == this)
							throw new TypeError("this is null or not defined");
						var d = Object(this),
							e = d.length >>> 0;
						if ("function" != typeof a)
							throw new TypeError(a + " is not a function");
						1 < arguments.length && (b = arguments[1]);
						for (c = 0; c < e;) {
							var f;
							c in d && (f = d[c],
								a.call(b, f, c, d));
							c++
						}
					});
					String.prototype.trim || (String.prototype.trim = function() {
						return this.replace(/(^\s*)|(\s*$)/g, "")
					});
					Function.prototype.bind || (Function.prototype.bind = function(a) {
						if ("function" != typeof this)
							throw new TypeError(
								"Function.prototype.bind - what is trying to be bound is not callable"
								);
						var b = Array.prototype.slice.call(arguments, 1),
							c = this,
							d = function() {},
							e = function() {
								return c.apply(this instanceof d && a ? this : a, b
									.concat(Array.prototype.slice.call(arguments)))
							};
						return d.prototype = this.prototype,
							e.prototype = new d,
							e
					})
				}, function(a, b, c) {
					function e(a) {
						return a && a.__esModule ? a : {
							"default": a
						}
					}

					function g() {
						return (0,
								h["default"])(this, g),
							new q["default"]({
								middleware: [new p["default"], new m["default"]],
								data: r["default"]["default"]
							})
					}
					b.__esModule = !0;
					var h = e(c(14)),
						p = (e(c(130)),
							e(c(129))),
						m = e(c(104)),
						q = e(c(103)),
						r = e(c(65));
					a = (g.getInstance = function() {
							return window.MarsTracker || (window.MarsTracker = new g),
								window.MarsTracker
						},
						g);
					b["default"] = a.getInstance()
				}],
				e.c = b,
				e.d = function(a, b, c) {
					e.o(a, b) || Object.defineProperty(a, b, {
						configurable: !1,
						enumerable: !0,
						get: c
					})
				},
				e.r = function(a) {
					Object.defineProperty(a, "__esModule", {
						value: !0
					})
				},
				e.n = function(a) {
					var b = a && a.__esModule ? function() {
							return a["default"]
						} :
						function() {
							return a
						};
					return e.d(b, "a", b),
						b
				},
				e.o = function(a, b) {
					return Object.prototype.hasOwnProperty.call(a, b)
				},
				e.p = "",
				e(e.s = 131))["default"];
			var c, b
		})
	}, {}]
}, {}, [14]);
